laalaal
2001-08-02 11:06:10
0
4672

sqlplus에서 inout패키지 연동해보기


패키지의 스펙 부분:::::::::::::::::::::

Package MP_REPORT AS


PROCEDURE REMITAMOUNT(
P_UserId IN NUMBER,
P_OrdNum OUT VARCHAR2
);


END;





패키지의 바디 부분:::::::::::::::::::::

PACKAGE BODY MP_REPORT AS

--> === REPORT TABLE에 추가 변경 삭제 하는 STORED PROCEDURE === <--

Cursor balance1_cursor Is
select itemid,decode(medi_insu_code,',kgcode,medi_insu_code)
from mp_item
where rownum =1;



PROCEDURE REMITAMOUNT(
P_UserId IN NUMBER,
P_OrdNum OUT VARCHAR2
)
IS
v_test varchar2(200);
Begin
For rec In balance1_cursor Loop
select min(shiptoname) into v_test from mp_ord where buyerid = P_UserID;
end loop;
P_OrdNum := v_test;
End;--End Of REMITAMOUNT Stored Procedure


이렇게 되어 있으면
sqlplus>에서는

SQL>variable test varchar2(300) <--- 여기에서 값은 크게 잡아 주는게 좋습니다 왜냐하면 패키지의 내용을 알면 ?찮은데 모르면 에러가 나기 때문입니다.

SQL> exec mp_report.remitamount(1306,:test);

SQL> print test;

TEST
--------------------------------------------------------------------------------
신영호

procedure가 아니라 function의 경우는

SQL> exec :test := mp_report.remitamount(1306);

이런 형태가 되어야 겠죠.물론 이같이 하면 위의 procedure를 적용하면 안되겠죠?

laalaal~
0
0
  • 댓글 0

  • 로그인을 하시면 댓글을 등록할 수 있습니다.