패키지 안에서 셀렉트 패키지 가져오기 할 때 0 4 2,471

by 박지훈 [PL/SQL] 패키지 셀렉트 커서 [2012.09.04 15:54:04]



패키지와 커서를 이용하여 다음과 같이 사용하고 있습니다.
===========================================
PACKAGE BODY PG_Class AS

Procedure SP1(
    ID in char,
    io_cursor1 IN OUT uom_cursor
)
IS
    u_cursor uom_cursor;
BEGIN

    OPEN u_cursor FOR

    SELECT * FROM TBL1 WHERE USER_ID = ID;

    io_cursor1 := u_cursor;

END  SP1 ;       
    ㆍ
    ㆍ 
ㆍ       
END PG_Class;
=========================================== 

하고 싶은 것은 다음과 같이 패키지에서 SP1을 호출 하는 것입니다.

그런데 SP1호출시 인수와 유형이 맞지 않다고 나오는데

정확한 원인을 모르겠네요.^^;;; 무엇이 잘 못 되었죠~?
===========================================  
PACKAGE BODY PG_Class AS

ㆍ 
ㆍ     
Procedure SP2(
ID in char,
io_cursor1 IN OUT uom_cursor
)
IS
u_cursor uom_cursor;
BEGIN

OPEN u_cursor FOR

PG_Class.SP1(ID, io_cursor1 );  

io_cursor1 := u_cursor;

END  SP2 ;       

END PG_Class;

===========================================  

참고로 ASP.NET과 크리스탈레포트에서 호출합니다.
by 마농 [2012.09.05 08:30:06]

-- OPEN u_cursor FOR -- 요거랑
PG_Class.SP1(ID, io_cursor1 ); -- 요거 한줄이면 됩니다.
-- io_cursor1 := u_cursor; -- 요거랑 빼세요.
-- io_cursor1 := u_cursor; -- 요것두 빼세요.


by 박지훈 [2012.09.05 09:09:04]
안녕하세요 마농님 답변 감사드립니다.

그런데 마지막에 말씀하신게 이해가 좀 안되네요. 

SP2에는 '
io_cursor1 := u_cursor; '이 한 줄 밖에 없는데...

이렇게 수정 하면 되는건가요~?

=
=  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  = 
Procedure SP2(

ID in char,
io_cursor1 IN OUT uom_cursor
)
IS
u_cursor uom_cursor;
BEGIN

OPEN u_cursor FOR

 PG_Class.SP1(ID, io_cursor1 );  

END  SP2 ;       

END PG_Class;

by 마농 [2012.09.05 09:20:52]
요거 한줄이면 될듯 한데요. Open 줄도 빼세요.
PG_Class.SP1(ID, io_cursor1 );

by 박지훈 [2012.09.05 09:47:17]
마농님 감사합니다.^^ 해결했습니다.

다 되고나 보니 조금만 더 생각해보면 될 것 같았는데~ㅎㅎ 

아직 멀었네요~^^ 

다시 한 번 감사드립니다
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입