본문 바로가기
JAVA

오라클 커서(CURSOR) 예시

by Son 2022. 12. 6.

STUD11 테이블에서 이름이 ‘Kim’인 학생의 이름을 읽어 Kim_STUD11 테이블에 저장하되 각 학생에게 S1, S2, … 과 같은 학생번호를 같이 저장하는, 커서가 포함된 PL/SQL 코드를 작성하라.
단, STUD11테이블은 name속성만 가지며 'John Kim, Mary Kim, Judy Hong'의 3명의 학생이 등록되어 있다. 

 

 


Declare
Kname stud11.name %Type; //kname의 변수의 데이터 타입은stud11테이블의name의 데이터 타입과 같다
i INTEGER; //loop문을 위한 i 
cursor name_cur IS; //커서
select name  
from stud11  //STUD11 테이블에서
where name LIKE'%Kim%';  //이름이 ‘Kim’인 학생의 이름을 읽어 커서에 저장
begin
open name_cur; //커서 오픈
fetch name_cur INTO Kname; //커서 name_cur에 들어있는 것을 Kname에 넣어주기
exit when name_cur%NOTFOUND; //loop문 탈출조건 
insert into kim_stud11 values('S' || i, Kname); // 각 학생에게 S1, S2, … 과 같은 학생번호를 같이 저장하는, 커서가 포함 + Kim_STUD11 테이블에 저장
close name_cur;
commit
end;