패키지관련하여질문드립니다 0 5 1,511

by 정재교오라클 [SQL Query] 패키지 [2014.09.17 15:09:07]


by 마늘장아찌 [2014.09.18 14:11:55]

function 과 function 의 parameter를 나누어서 생각해 보죠.

실제로 해당 function의 return은 char이므로 function을 호출하는 곳에서 return은

위의 예 처럼 N 또는 다른값 하나를 받게 되는것이구요,

function안에 parameter에서는 In 과 Out이 있는데 In은 호출하는곳에서 전달만 하는것이고

out은 전달을 받아 오는거죠. In out을 둘다 쓸수도 있구요.

위에서 보면 out이 두개 보이는데 하나는 date이고 하나는 char이죠

실제로 호출한곳에서 w_maxdd, w_maxor 값을 print out 해보면 값이 호출전과 달라질수가 있겠습니다.

 

 


by 정재교오라클 [2014.09.18 16:22:49]

전문적인 답변감사드립니다.

return 에서 n이나 다른값 하나를  받을수있다고하셧는데 여기서 n이 어디서 나온건지궁금하네요

char 일경우 y / n 만 리턴하는것두아닐테구요....

만약에 리턴에서 n이나왓다고하더라도 n이나온근거는무엇일지 궁금하네요....

 


by 마늘장아찌 [2014.09.19 08:40:23]

호출시 라고 적으신 부분에서 function의 결과값을 'N' 으로 비교하고 있죠.

return 값이 char 이므로 Y,N만 올수있는것은 아닙니다.

하지만, Biz Logic적으로 그 function의 제한사항이 있어야 겠고 결과값에 대한 비교는

필요한거죠.


by 정재교오라클 [2014.09.19 09:54:17]

네 감사드립니다 하지만 이왕이렇게 된거 확실히 알아야할거같아서요....

어떻게 동작을하고 어떻게 N값이 나오는지말이죠... ...어렵네요 단순히 함수호출해서 값리턴받는부분인데

분석하다 어떻게해서 N이나오나하다보니 여기까지오네요...

CREATE OR REPLACE PACKAGE FINS.FPBK_LEDGER AS
-- 재무제표 구분에 따라 Max(회계일,발생구분) SELECT --------------
function fchk_act_date (i_bzplc in varchar2,
i_actcode in varchar2,
i_acdate in date,
i_dayor in char,
o_maxdd out date,
o_maxor out char,
i_book1 in varchar2 default null,
i_book2 in varchar2 default null,
i_book3 in varchar2 default null,
i_currency in varchar2 default null)
return char;

END FPBK_LEDGER;

호출하는부분의 문장인데요 현재까지 잘쓰고있는 프로그램이구...현재 프로그램 분석중에있다가

궁금하여 문의드리게된부분입니다... 호출시 부분에서 N으로 비교를 하고있는데 이 N이 어떻게 설정되느냐가

궁금하여서요.. 다른곳에도질문을올렷는데 확실히개념을잡을만한 답글은없더라구요..이왕 이렇게 된거 저부부는 어떻게동작하는지 알아야겠습니다...감사합니다


by 마농 [2014.09.25 13:18:00]

지금 보고 계신 것은 패키지 해더의 함수 선언부입니다.

함수에서 사용되는 인자들과 리턴되는 타입만 선언된 것이구요.

함수의 실제 로직은 패키지 바디쪽에 구현되어 있겠죠.

결과값과 N을 비교하셧기 때문에 함수의 리턴이 Y / N 일거라는 추측이 가능한 거구요.

실제 리턴값이 어떤지는 소스를 까봐야 알 수 있습니다.

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