programing

Oracle SQL의 루프의 경우

closeapi 2023. 7. 20. 21:57
반응형

Oracle SQL의 루프의 경우

Oracle을 처음 사용하는 사용자이며 Oracle SQL(PL/SQL 아님)에서 루프에 사용하는 방법에 대해 잘 알지 못합니다.

쿼리에서 +1을 늘리고 문을 실행해야 하는데 SQL에서 for 루프를 사용할 수 있습니까?

당신은 내 친구를 꽤 혼란스럽게 하는군요.SQL에는 LOOP가 없고 PL/SQL에만 LOOP가 있습니다.다음은 기존 Oracle 테이블을 기반으로 한 몇 가지 예입니다. 복사/붙여넣기를 통해 결과를 확인할 수 있습니다.

-- Numeric FOR loop --
set serveroutput on -->> do not use in TOAD --
DECLARE
  k NUMBER:= 0;
BEGIN
  FOR i IN 1..10 LOOP
    k:= k+1;
    dbms_output.put_line(i||' '||k);
 END LOOP;
END;
/

-- Cursor FOR loop --
set serveroutput on
DECLARE
   CURSOR c1 IS SELECT * FROM scott.emp;
   i NUMBER:= 0;
BEGIN
  FOR e_rec IN c1 LOOP
  i:= i+1;
    dbms_output.put_line(i||chr(9)||e_rec.empno||chr(9)||e_rec.ename);
  END LOOP;
END;
/

-- SQL example to generate 10 rows --
SELECT 1 + LEVEL-1 idx
  FROM dual
CONNECT BY LEVEL <= 10
/

WITH 절을 사용하거나 Oracle SQL에서 사용할 수 있는 분석 기능을 사용할 수 있습니다.

약간의 노력으로 여러분은 일반적인 절차 언어에서처럼 주기적인 측면에서 그들로부터 무엇이든 얻을 수 있을 것입니다.두 가지 접근 방식 모두 일반 SQL에 비해 매우 강력합니다.

http://www.dba-oracle.com/t_with_clause.htm

http://www.orafaq.com/node/55

하지만 그것은 약간의 노력을 필요합니다.구체적인 예를 올리는 것을 두려워하지 마세요.

간단한 의사 테이블 DUAL을 사용하는 것도 도움이 됩니다.

언급URL : https://stackoverflow.com/questions/15012247/for-loop-in-oracle-sql

반응형