>  기사  >  데이터 베이스  >  Oracle 저장 프로시저의 루프 문은 무엇입니까?

Oracle 저장 프로시저의 루프 문은 무엇입니까?

WBOY
WBOY원래의
2022-06-10 15:48:1113447검색

Oracle 저장 프로시저의 루프 문: 1. LOOP 루프, 구문은 "루프 루프 본문, 종료 WHEN 루프 조건식 종료, END LOOP;"입니다. 2. WHILE 루프, 구문은 "조건식 루프 루프 문; end loop;"; 3. for 루프의 경우 구문은 "변수 IN(역방향) 카운터 하한값...카운터 상한값 LOOP 루프 본문;END LOOP;"입니다.

Oracle 저장 프로시저의 루프 문은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 버전 12c, Dell G3 컴퓨터.

Oracle 저장 프로시저의 루프 문이란 무엇입니까?

프로그램이 특정 작업을 반복적으로 수행해야 하는 경우 루프 구조를 사용해야 합니다. PL/SQL의 루프문에는 크게 LOOP문, WHERE문, FOR문의 세 가지 유형이 있습니다.

LOOP 문

LOOP 문은 먼저 루프 본문을 한 번 실행한 다음 EXIT WHEN 키워드 뒤의 조건식이 true인지 false인지 확인합니다. true이면 루프 본문을 종료합니다. 그렇지 않으면 프로그램이 종료됩니다. 루프 본문을 다시 실행하십시오.

기본 구문:

loop
    A;
    EXIT WHEN B;
END LOOP;

A: 루프 본문의 SQL 문을 나타냅니다. 이는 한 문장 또는 여러 문장일 수 있습니다. 이는 루프 본문의 핵심 부분입니다.

B: 루프 종료 조건 표현식이 true이면 루프를 종료하고, 그렇지 않으면 루프 본문을 다시 실행합니다.

코드 예:

-- Created on 2020/12/16 by GUO 
declare 
  i int:= 0;
begin
  loop
    i:=i+1;
    dbms_output.put_line(i);
    EXIT WHEN i > 3;
  END LOOP;
end;

실행 결과:

Oracle 저장 프로시저의 루프 문은 무엇입니까?

실제 예:

Loop + 커서를 사용할 때 커서의 값을 다시 할당해야 하며, 그렇지 않으면 오류가 보고됩니다.

-- Created on 2020/12/17 by GUO 
declare
  cursor user is
    select * from user_table;
  user1 user_table%rowtype;
begin
  open user;
  loop
    fetch user into user1;
    exit when user%notfound;
    dbms_output.put_line('用户名称:' || user1.USER_NAME);
    dbms_output.put_line('用户年龄:' || user1.USER_AGE);
  end loop;
  close user; --关闭游标
end;

WHILE 문

실행하기 전에 먼저 조건식의 값이 true인지 확인해야 합니다. true이면 루프 본문을 실행합니다. 그렇지 않으면 WHILE 루프를 종료하고 루프 뒤의 코드를 계속 실행합니다.

기본 구문:

while a loop
  b;
end loop;

A: 조건식을 나타냅니다. 값이 true이면 프로그램은 루프 본문을 실행하고 그렇지 않으면 종료됩니다.

B: 루프 본문의 SQL 문입니다.

코드 예:

-- Created on 2020/12/17 by GUO 
declare
  i int := 0;
begin
  while i < 3 loop
    i := i + 1;
    dbms_output.put_line(i);
  end loop;
end;

실행 결과:

Oracle 저장 프로시저의 루프 문은 무엇입니까?

실제 예:

-- Created on 2020/12/17 by GUO 
declare
  cursor user is
    select * from user_table;
  user1 user_table%rowtype;
begin
  open user;
  fetch user into user1;
  while(user%found)loop
  dbms_output.put_line(&#39;用户名称:&#39; || user1.USER_NAME);
  fetch user into user1;
  end loop;
end;

FOR 문

FOR 문은 루프 수를 미리 설정할 수 있는 루프 제어 문입니다. 카운터, 일반적으로 정수 변수이며 이 카운터를 통해 루프 수를 제어합니다.

기본 구문:

for A IN (reverse) B...C LOOP
   D;
 END LOOP;

A: 카운터로 사용되는 변수(일반적으로 인증서 유형)를 나타냅니다. 기본값은 루프에서 reverse 키워드를 사용하면 감소합니다.

B: 카운터 하한값. 카운터 값이 하한값보다 작으면 루프가 종료됩니다.

C: 카운터의 상한. 카운터 값이 상한보다 크면 루프가 종료됩니다.

D: 루프 바디. +

위 내용은 Oracle 저장 프로시저의 루프 문은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.