Oracle 저장 프로시저의 커서는 무엇입니까?

WBOY
풀어 주다: 2022-02-28 11:05:39
원래의
8216명이 탐색했습니다.

Oracle에서 커서는 SQL의 메모리 작업 공간으로, 시스템이나 사용자가 변수 형식으로 정의하며, 데이터베이스에서 커서 변수로 데이터를 전송한 후 데이터베이스에서 추출한 데이터 블록을 임시로 저장하는 데 사용됩니다. , 애플리케이션 그런 다음 커서 변수에서 필요한 데이터를 분해하여 처리합니다.

Oracle 저장 프로시저의 커서는 무엇입니까?

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

Oracle 저장 프로시저의 커서란 무엇인가요?

1. 다음과 같이 개념을 아주 잘 설명하는 단락을 보았습니다.

커서는 SQL의 메모리 작업 공간으로 시스템이나 사용자가 변수 형식으로 정의합니다. 커서의 목적은 데이터베이스에서 추출된 데이터 블록을 임시로 저장하는 것입니다. 어떤 경우에는 처리를 위해 디스크에 저장된 테이블의 데이터를 컴퓨터 메모리로 전송하고 최종적으로 처리 결과를 표시하거나 데이터베이스에 다시 쓰는 것이 필요합니다. 이런 방식으로 데이터 처리 속도가 빨라지지만, 그렇지 않으면 디스크 데이터 교환이 자주 발생하여 효율성이 저하됩니다.

커서에는 명시적 커서와 암시적 커서라는 두 가지 유형이 있습니다. 앞서 언급한 프로그램에 사용된 SELECT...INTO... 쿼리 문은 데이터베이스에서 한 번에 하나의 데이터 행만 추출할 수 있습니다. 이러한 형태의 쿼리 및 DML 작업의 경우 시스템은 암시적 커서를 사용합니다. 그러나 여러 행의 데이터를 추출하려면 프로그래머가 명시적 커서를 정의하고 커서 관련 문을 통해 이를 처리해야 합니다. 명시적 커서는 여러 행과 열을 반환하는 SELECT 문에 해당합니다.

커서가 열리면 데이터가 데이터베이스에서 커서 변수로 전송된 다음 애플리케이션이 커서 변수에서 필요한 데이터를 분해하여 처리합니다. 변수에 값을 삽입, 업데이트, 삭제 및 선택하는 작업에서는 암시적 커서를 사용합니다.

암시적 커서 속성 반환 값 유형 의미:

  • SQL%ROWCOUNT 정수 유형 DML 문에 의해 성공적으로 실행된 데이터 행 수를 나타냅니다.

  • SQL%FOUND 부울 값 TRUE는 삽입, 삭제, 업데이트 또는 단일 행을 나타냅니다. 쿼리 작업이 성공했습니다.

  • SQL%NOTFOUND 부울 유형이 SQL%FOUND 속성의 반환 값과 반대입니다.

  • SQL%ISOPEN 부울 유형 DML 실행 중에는 True, 종료 후에는 false

2. 암시적 커서:

create or replace procedure prc_example (epo in number) as
BEGIN  
        UPDATE emp SET sal=sal+100 WHERE empno=epo;   
         IF SQL%FOUND THEN    
        DBMS_OUTPUT.PUT_LINE('成功修改雇员工资!');   
        COMMIT;    
        ELSE  
        DBMS_OUTPUT.PUT_LINE('修改雇员工资失败!');   
         END IF;    
        END; 
declare
e_number number;
begin
e_number:=7788;
prc_example(e_number);
 end;
로그인 후 복사

3. 커서 표시:

숫자가 10

create or replace procedure prc_example is
begin
    declare
    cursor emp_sor  is select ename,sal from emp where deptno=10;  
    cname emp.ename%type;     
    csal emp.sal%type;
 begin
   open emp_sor;       
   loop        
   fetch emp_sor into cname,csal;  --取游标的值给变量。             
   dbms_output.put_line('ename:'||cname);        
   exit when emp_sor%notfound;        
  end loop;         
  close emp_sor;     
 end;
end;
로그인 후 복사

인 모든 직원 이름을 쿼리하려면 커서를 사용하세요. 권장 튜토리얼: "Oracle Video Tutorial"

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿