1) 정의- 커서를 짧고 간략하게 설명 하면 "SQL문을 처리한 결과 집합을 가리키는 포인터이다." 이걸 약간 더 길게 설명 하면 SQL 처리 결과 를 오라클 서버 프로세스 내부의 Private SQL Area 라는 메모리 영역에 저장되는데 클라이언트 프로세스에서 포인터(커서)라 는 것이 가리키고 있다. 아래 두줄은 같은말 `` - 질의의 결과로 얻어진 여러 행이 저장된 메모리상의 위치. 아래 그림은 위에 설명을 한 장의 이미지로 설명했다. 커서의 정의에 대해서 알아 보았으니 종류에 대해서 알아 보자. 종류로는 암시적, 명시적 커서로 나뉜다. 2) 암시적 커서 : 오라클 내부에서 PL_SQL(INSERT, UPDATE, DELETE 등등.) 실행시 자동으로 생성 되어 사용 되어진다. 함수로 치면 내장 함수라고 생각 하면 쉽게 이해 될듯 하다. 속성
- SQL%NOTFOUND : 해당 SQL문에 의해 반환된 총 행수가 없을 경우 TRUE (BOOLEAN) - SQL%ISOPEN : 항상 FALSE, 암시적 커서가 열려 있는지의 여부 검색( PL/SQL은 실행 후 바로 묵시적 커서를 닫기 때문에 항상 상 false) - SQL%ROWCOUNT : 해당 SQL문에 의해 반환된 총 행수, 가장 최근 수행된 SQL문에 의해 영향을 받은 행의 갯수(정수) 3) 명시적 커서: 사용자가 직접 정의해서 사용 하는 커서를 말한다. 함수로 치면 외장 함수 쯤 된다. 개발자가 필요할때 새로 정의해서 사용 하는 커서 코드 작성법은 여러 방법이 있지만 아래 커서는 코딩언어 로 치면 지역변수 커서에 해당 한다. 해당 블록에 커서를 생성해서 지정된 코드블럭을 넘어 서게 되면 소멸 한다.
FOR LOOP가 자동적으로 커서를 OPEN해주며, 행이 없을 때까지 FETCH해주고, CLOSE해준다. "지역 변수가 아닌 전연 변수를 선언 할때" - 다른 블록에서도 사용이 가능하고 얼마든지 재사용이 가능하다 이
포인터(커서) 종류로는 강한 타입과 약한 타입의 커서 이고 언어코딩으로 설명하자면 강한타입 커서 사용법은 아래와 같고 자세한건 생략 하기로 한다. TYPE dep_curtype IS REF CURSOR RETURN department%ROWTYPE; 3-1) 약한 타입인 SYS_REFCURSOR (빌트인 타입 이라고 불리는) 사용 법을 알아보자
[Oracle] PL/SQL 기초3 - 커서 [Oracle] PL/SQL 기초3 - 커서 (CURSOR) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ PL / SQL 커서 ] 입니다. : ) 개인적으론 PL / SQL 의 꽃은 "커서"가 아닐까 생각합니다. 커서 (CURSOR) [정의] - SQL 커서.. goddaehee.tistory.com [PL/SQL] 커서 (Cursor) 커서란, SQL문을 처리한 결과 집합을 가리키는 일종의 포인터이다. (C에서 나오는 포인터 개념과 유사하다) 이 결과 집합은 오라클 서버 프로세스 내부의 Private SQL Area라는 메모리 영역에 저장되는데, 여기서.. gdtbgl93.tistory.com |