Cursor 관련 프로시져 문의 0 3 3,172

by 삼만돌이 [Toad] cursor [2013.10.04 16:09:25]



안녕하세요 타 db에있는 프로시져에서 조회결과를 cursor로 리턴받아서
현재 db에있는 프로시져에서 사용하려고 하는데요..
잘안되서 문의드립니다.

A db의 프로시져
CREATE OR REPLACE PROCEDURE aa_test(C_CUR   OUT SYS_REFCURSOR --반환값
   ) IS
   
  BEGIN

   OPEN C_CUR FOR
select yyy from test_aa
where aakey= 1111;
  
  END aa_test;

위 프로시져를 참조할 B db의 프로시져

CREATE OR REPLACE PROCEDURE aa_vvv(p_check   OUT varchar
   ) IS
   
 C_CUR SYS_REFCURSOR;
 V_aa varchar(10);

  BEGIN

  aa_test@dblin_a(C_CUR);
 
  open C_CUR;  <--이부분이 잘못된것 같은데 어떻게 사용해야 될지 모르겠어요..
   loop
    fetch C_CUR
   into V_SHAPE;
  
   insert into IN_TEST (AA) values (V_aa);
  
   exit when C_CUR%NOTFOUND;
   
   end loop;
  close C_CUR;
  
  END aa_vvv;

by 마농 [2013.10.04 17:24:25]

이미 OPEN 이 된 상태이니 OPEN 은 빼시구요.
Exit 구문의 위치가 Insert 다음에 있네요? Fetch 바로 아래 위치시켜 주세요.


by 삼만돌이 [2013.10.04 17:43:45]

마농님 감사합니다. 생각지도 못한부분까지.. 그런데

실제 실행해보니..컴파일은 이상 없는데..
fetch C_CUR 이 부분에서 문장처리가 수행되지 않았습니다라고 나오네요..


by 마농 [2013.10.04 18:03:08]
into 절에 있는 변수가 앞에서 선언된 변수가 아니네요?
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입