plsql 디 스 플레이 커서
8337 단어 plsql
커서 를 설명 하고 커서 를 열 고 커서 를 검색 하 며 커서 를 닫 습 니 다.
성명 커서
CURSOR c_cursor_name IS statement;
커서 는 검색 결과 집합 에 해당 하 며 검색 결 과 를 커서 에 넣 어 블록 에서 처리 하기 편리 합 니 다.
기록 하 다.
하나의 기록 은 복합 적 인 데이터 구조 로 결과 집합 에 있 는 한 줄 의 데이터 에 해당 하 며 커서 를 옮 겨 다 닐 때 결 과 를 저장 하 는 데 사용 된다.기록 지원 세 가지 정의: 표 기반, 커서 기반, 사용자 정의.
표 나 커서 기반 이 라면 다음 과 같이 정의 합 니 다.
record_name table_name or cursor_name%ROWTYPE;
커서 열기
OPEN cursor_name;
검색 커서
두 가지 커서 검색 방식 이 존재 합 니 다:
FETCH cursor_name INTO pl/sql variables;
or
FETCH cursor_name INTO pl/sql record;
커서 가 검색 되 었 을 때, 모든 FETCH 문장 뒤에 활성 데이터 집합 포인터 가 다음 데이터 줄 로 계속 이동 합 니 다.따라서 FETCH 는 데이터 세트 전 체 를 가 져 올 때 까지 활성 화 된 데이터 가 집 중 된 데이터 줄 을 되 돌려 줍 니 다.마지막 FETCH 문 구 는 출력 변수 에 값 을 부여 하지 않 고 후 자 는 원래 의 값 을 저장 합 니 다.
그렇다면 커서 검색 을 끝까지 하면 어떻게 검색 을 중단 합 니까?
이 때 는 커서 의 속성 을 사용 해 야 합 니 다.
커서 속성 포함:
% NOTFOUND 현재 FETCH 작업 이 데이터 줄 을 되 돌려 주지 않 았 을 때 true 입 니 다. 그렇지 않 으 면 false 입 니 다.
%FOUND 상술 한 것 과 상반되다.
% ROWCOUNT 가 커서 의 기록 수량 을 되 돌려 줍 니 다.
%ISOPEN 커서 가 열 렸 는 지 확인 하기;
커서 닫 기
CLOSE cursor_name;
다음은 하나의 예시 이다.
1 declare
2 cursor c_zip is
3 select * from zipcode;--
4 vr_zip c_zip%rowtype;-- ,
5 begin
6 open c_zip;--
7 loop
8 fetch c_zip into vr_zip;-- ,
9 exit when c_zip%NOTFOUND;-- , FETCH ,exit
10 dbms_output.putline(vr_zip.zip || ' ' || vr_zip.city || ' ' || vr_zip.state);
11 end loop;
12 close c_zip;--
13 end;
간편 한 방법: 커서 FOR 순환 사용
커서 FOR 순환 에 힘 입 어 커서 가 열 리 고 검색 과 닫 히 는 과정 이 은연 중 에 이 뤄 진다.이것 은 코드 블록 을 더욱 쉽게 작성 하고 유지 할 수 있 게 한다.
사용 방법 은 C \ # 의 foreach 와 비슷 하여 자동 으로 옮 겨 다 닙 니 다.
다음은 위의 예시 적 인 for 순환 표기 법 입 니 다.
1 declare
2 cursor c_zip is
3 select * from zipcode;--
4 begin
5 for r_zip in c_zip--
6 loop
7 dbms_output.putline(vr_zip.zip || ' ' || vr_zip.city || ' ' || vr_zip.state);
8 end loop;--
9 end;
입력 매개 변수
매개 변 수 를 입력 하려 면 커서 이름 뒤에 함수 와 유사 한 매개 변수 목록 같은 것 을 추가 하고 커서 를 검색 할 때 호출 (즉 FETCH INTO 구문) 에 해당 하 며 커서 이름 뒤에 실제 매개 변 수 를 입력 합 니 다.
다음은 예시 입 니 다.
1 declare
2 cursor c_zip(p_state in zipcode.state%type) is --
3 select zip, city, state
4 from zipcode
5 where state = p_state;
6 v_state zipcode.state%type := &a;
7 begin
8 for r_zip in c_zip(v_state)--
9 loop
10 dbms_output.put_line(r_zip.zip || ', ' || r_zip.city || ', ' || r_zip.state);
11 end loop;
12 exception
13 when no_data_found then dbms_output.put_line('no data found');
14 end;
칠석 잘 보 내세 요!여러분, 안전 조 치 를 잘 하 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[OCI] Autonomous Database에서 Oracle Cloud Infrastructure SDK for PL/SQL a.k.a. PL/SQL SDK를 사용해 보았습니다.Oracle Cloud Infrastructure SDK for PL/SQL(PL/SQL SDK)이 출시되어 공유 인프라의 Autonomous Database에서 이미 사용할 수 있습니다. PL/SQL SDK를 사용...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.