메모리 프로세스 커서 반복

메모리 프로세스가 커서를 옮겨다니기:

  
  
  
  
  1. CREATE OR REPLACE PROCEDURE PRC_LJ IS 
  2.   CURSOR C_EMP IS --  
  3.     SELECT EMPNO,ENAME FROM EMP;  
  4.   C_ROW C_EMP%ROWTYPE; -- , C_EMP  
  5. BEGIN 
  6.   --For   
  7.   FOR C_ROW IN C_EMP LOOP  
  8.     DBMS_OUTPUT.PUT_LINE(C_ROW.EMPNO || '--' || C_ROW.ENAME);  
  9.   END LOOP;  
  10.  
  11.   --Fetch   
  12.   OPEN C_EMP;--  
  13.   LOOP  
  14.     FETCH C_EMP  
  15.       INTO C_ROW;  
  16.     EXIT WHEN C_EMP%NOTFOUND;  
  17.     DBMS_OUTPUT.PUT_LINE(C_ROW.EMPNO || '++' || C_ROW.ENAME);  
  18.   END LOOP;  
  19.   CLOSE C_EMP;  
  20.  
  21.   --While   
  22.   OPEN C_EMP;--  
  23.     FETCH C_EMP INTO C_ROW;  
  24.     WHILE C_EMP%FOUND LOOP  
  25.       DBMS_OUTPUT.PUT_LINE(C_ROW.EMPNO || '**' || C_ROW.ENAME);  
  26.       FETCH C_EMP INTO C_ROW;  
  27.     END LOOP;  
  28.   CLOSE C_EMP;  
  29. END PRC_LJ; 

For 순환 for 순환을 사용하는 첫 번째 방법은 비교적 간단하고 실용적인 방법이다.우선, 이것은 자동으로 오픈과close 커서를 표시합니다.커서를 열거나 닫는 것을 잊어버리는 고민을 해결했다.그 다음에 기록 형식과 이 형식을 정의하는 변수를 자동으로 설명하고fetch 데이터를 이 변수에 자동으로 전달합니다.주의 CROW 변수는 루프 외부에서 선언할 필요가 없으며 데이터 유형을 지정할 필요가 없습니다.그것은 기록 유형으로 구체적인 구조는 커서에 의해 결정된다.이 변수의 작용역은 단지 순환체내에 있을 뿐이다.마지막으로 이 커서와 관련된 모든 기록을 되찾은 후에 순환이 무조건 끝나서 커서의%NOTFOUND 속성을 TRUE로 판정할 필요가 없습니다.for 순환은 커서를 순환하는 가장 좋은 방법입니다.효율적이고 간결하며 안전합니다.
두 번째는fetch 순환을 사용하는데 exitwhen 문장은fetch 다음에 따라가야 하며 여분의 데이터 처리를 피해야 한다.처리 논리는 exit when 다음에 따라야 합니다.순환이 끝난 후에 커서를 닫는 것을 잊지 마세요.
세 번째는 While 순환을 사용하고while 순환을 사용할 때 순환하기 전에fetch 동작을 한 번 해야 커서의 속성이 작용한다.그리고 데이터 처리 동작은 반드시 순환체내의fetch방법에 넣기 전에 순환체내의fetch방법은 마지막에 놓아야 한다. 그렇지 않으면 한 번 더 처리할 것이다.

좋은 웹페이지 즐겨찾기