Creative Saplings

PL / SQL-커서

1월 30, 2021
No Comments
광고

이 장에서는 PL / SQL의 커서에 대해 설명합니다. Oracle은 명령문 처리에 필요한 모든 정보를 포함하는 SQL 문을 처리하기 위해 컨텍스트 영역이라고하는 메모리 영역을 만듭니다. 예를 들어 처리 된 행 수 등입니다.

커서는이 컨텍스트 영역에 대한 포인터입니다. PL / SQL은 커서를 통해 컨텍스트 영역을 제어합니다. 커서는 SQL 문이 리턴 한 행 (하나 이상)을 보유합니다. 커서가 보유한 행 세트를 활성 세트라고합니다.

SQL 문에서 리턴 된 행을 페치하고 처리하기 위해 프로그램에서 참조 될 수 있도록 커서의 이름을 지정할 수 있습니다. 한 번에. 커서에는 두 가지 유형이 있습니다-

  • 암시 적 커서
  • 명시 적 커서

암시 적 커서

암시 적 커서 SQL 문이 실행될 때마다 문에 대한 명시 적 커서가 없을 때 Oracle에 의해 자동으로 생성됩니다. 프로그래머는 암시 적 커서와 그 안에있는 정보를 제어 할 수 없습니다.

DML 문 (INSERT, UPDATE 및 DELETE)이 실행될 때마다 암시 적 커서가이 명령문과 연결됩니다. INSERT 조작의 경우 커서는 삽입해야하는 데이터를 보유합니다. UPDATE 및 DELETE 작업의 경우 커서는 영향을받을 행을 식별합니다.

PL / SQL에서 가장 최근의 암시 적 커서를 SQL 커서로 참조 할 수 있습니다.이 커서에는 항상 % FOUND와 같은 속성이 있습니다. , % ISOPEN, % NOTFOUND 및 % ROWCOUNT. SQL 커서에는 FORALL 문과 함께 사용하도록 설계된 추가 속성 % BULK_ROWCOUNT 및 % BULK_EXCEPTIONS가 있습니다. 다음 표는 가장 많이 사용되는 속성에 대한 설명을 제공합니다-

S.No 속성 & 설명
1

% FOUND

INSERT, UPDATE 또는 DELETE 문이 하나 이상의 행에 영향을 주거나 SELECT INTO 문이 하나 이상의 행을 반환하면 TRUE를 반환합니다. 그렇지 않으면 FALSE를 반환합니다.

2

% NOTFOUND

% FOUND의 논리적 반대입니다. INSERT, UPDATE 또는 DELETE 문이 행에 영향을주지 않았거나 SELECT INTO 문이 행을 반환하지 않으면 TRUE를 반환합니다. 그렇지 않으면 FALSE를 반환합니다.

3

% ISOPEN

내재적 커서에 대해서는 항상 FALSE를 반환합니다. Oracle은 관련 SQL 문을 실행 한 후 SQL 커서를 자동으로 닫기 때문입니다.

4

% ROWCOUNT

INSERT, UPDATE 또는 DELETE 문에 의해 영향을 받거나 SELECT INTO 문에 의해 반환 된 행 수를 반환합니다.

모든 SQL 커서 속성은 아래 예제와 같이 sql % attribute_name으로 액세스됩니다.

예

h3>

이전 장에서 만들고 사용했던 CUSTOMERS 테이블을 사용할 것입니다.

다음 프로그램은 테이블을 업데이트하고 각 고객의 급여를 500만큼 인상하고 SQL %를 사용합니다. 영향을받는 행 수를 결정하는 ROWCOUNT 속성 −

SQL 프롬프트에서 위 코드를 실행하면 다음 결과가 생성됩니다. −

6 customers selected PL/SQL procedure successfully completed. 

고객 테이블의 레코드를 확인하면 행이 업데이트되었음을 알 수 있습니다.

명시 적 커서

명시 적 커서는 더 많은 제어 권한을 얻기위한 프로그래머 정의 커서입니다. 컨텍스트 영역. PL / SQL 블록의 선언 섹션에서 명시 적 커서를 정의해야합니다. 둘 이상의 행을 반환하는 SELECT 문에서 생성됩니다.

명시 적 커서를 생성하는 구문은 다음과 같습니다.-

CURSOR cursor_name IS select_statement; 

작동 중 명시 적 커서는 다음 단계를 포함합니다. −

  • 메모리 초기화를위한 커서 선언
  • 메모리 할당을위한 커서 열기
  • 커서 가져 오기 데이터 검색 용
  • 커서를 닫아 할당 된 메모리 해제

커서 선언

커서 선언은 이름으로 커서를 정의하고 연관된 SELECT 문. 예 :

CURSOR c_customers IS SELECT id, name, address FROM customers; 

커서 열기

커서를 열면 커서에 대한 메모리가 할당되고 반환 된 행을 가져올 준비가됩니다. 그것에 SQL 문에 의해. 예를 들어, 위에서 정의한 커서를 다음과 같이 엽니 다.

OPEN c_customers; 

커서 가져 오기

커서를 가져 오려면 다음 위치에서 한 행에 액세스해야합니다. 시간. 예를 들어, 위에서 연 커서에서 다음과 같이 행을 가져옵니다.

FETCH c_customers INTO c_id, c_name, c_addr; 

커서 닫기

커서를 닫으면 할당 된 메모리예를 들어, 위에서 연 커서를 다음과 같이 닫습니다.-

CLOSE c_customers;

예

다음은 개념을 설명하는 완전한 예입니다. 명시 적 커서의 & minua;

SQL 프롬프트에서 위 코드를 실행하면 다음 결과가 생성됩니다.

1 Ramesh Ahmedabad 2 Khilan Delhi 3 kaushik Kota 4 Chaitali Mumbai 5 Hardik Bhopal 6 Komal MP PL/SQL procedure successfully completed. 
광고

Articles
Previous Post

Sustanon 250 Cycle (한국어)

Next Post

Netflix가 사용하는 데이터의 양-제어하고 적은 양의 데이터를 사용하는 방법

답글 남기기 답글 취소하기

최신 글

  • 2020 년 세계 최고의 사진 학교
  • 주권 시민이 반정부 철학을 도로로 가져옴
  • 치장 벽토 수리 비용 가이드
  • Muckrakers (한국어)
  • 정밀 종양학

보관함

  • 2021년 2월
  • 2021년 1월
  • 2020년 12월
  • 2020년 11월
  • 2020년 10월
  • 2020년 9월
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.