cursor c1 is select **** c1 선언
for item in c1 loop
cursor c2 is select item.a, item.b from dual; c2 선언 --- 에러 부분
for item_d in c2 loop
/* 작업 */
end loop
end loop
이렇게 작성은 안되나요? 된다고 보거나 들은것 같은데
pls-00103 심볼 c2를 만났습니다. 다음중 하나가 기대될때... 이런 에러가 나오네요..
커서 선언 sql은 정상입니다. 따로 실행시켜봤는데 정상 결과가 나오구요
선언은 선언부(DECLARE ~ BEGIN 사이)에서만 가능합니다. 처리부(BEGIN ~ END) 에서는 불가능합니다.
1. 맨 위 선언부로 올리는 방법
2. 서브 블럭(DECLARE ~ BEGIN ~ END)을 만들어 선언하는 방법.
PL/SQL 블럭은 DECLARE, BEGIN, EXCEPTION, END 로 구성되며
DECLARE, EXCEPTION 은 생략 가능하고, BEGIN, END 는 필수입니다.
PL/SQL 블럭은 다른 서브블럭을 포함할 수 있습니다.
단 서브블럭에서 선언된 변수는 서브블럭 내에서만 유효합니다.
서브블럭 밖 메인 블럭에서는 서브블럭에서 선언된 변수를 참조할 수 없습니다.
BEGIN ~ END 사이에 DECLARE ~ BEGIN ~ END 를 또 선언할수 있는가요? 이걸 말씀하신 서브블럭 이라고 하는건가요?