function GET_AMT_BOND_CMT
/*
i00의 채권(detail_i00)들에 대한 간략한 설명을 리턴하는 함수
예) 국민카드 100만원, 조흥은행 50만원
호출자) SPC 채권계산서 신고 프로시져(SP_CRSS_LN_COMPLETE)
작성자) 이성훈(2004/02/23)
*/
(
p_id in CRSS_LN_MAIN.resident_no%TYPE
)
return varchar
is
/* 설명을 담는 변수 */
v_cmt varchar(2000);
v_return varchar(2000);
/* 설명을 추출하는 커서 */
cursor amt_cmt(v_id CRSS_LN_MAIN.resident_no%TYPE) is
select replace(b.creditor_name,'(AMC)','') || ' ' ||
trim(trunc(
(sum(nvl(rest_prn_amt-deduct_prn_amt,0))+sum(nvl(rest_fee_amt-deduct_fee_amt,0))+
sum(nvl(rest_int_amt-deduct_int_amt,0))+sum(col_user.get_interest_i00(chae_no, creditor_g, chae_num, to_char(sysdate+7,'yyyymmdd'))-deduct_dint_amt)+
sum(nvl(rest_pre_amt-deduct_pre_amt,0))+col_user.get_userpre_i00(p_id))
/ 10000))
||' 만원' as "cmt"
from creditor_info b, detail_i00 a
where a.chae_no=p_id
and a.creditor_g=b.creditor_code
group by b.creditor_name;
begin
v_return:='(';
open amt_cmt(p_id);
loop
fetch amt_cmt into v_cmt;
exit when amt_cmt%notfound;
v_return := v_return || v_cmt || ', ';
end loop;
/* 마지막 콤마를 제거한다. */
v_return := v_return || '*';
v_return := replace(v_return, ', *', ')');
return v_return;
exception when others then
return '상록수 채권';
end;
'SQL > ORACLE' 카테고리의 다른 글
[ORACLE]해당월의 마지막 일 가져오기 LAST_DAY (0) | 2014.02.12 |
---|---|
[ORACLE]프로시저 컴파일하는 방법 (0) | 2014.02.12 |
[ORACLE]트리거에서 프로시저 실행시키기 (0) | 2014.02.12 |
[ORACLE]커서를 이용한 프로시저 (0) | 2014.02.12 |
[ORACLE]중복된 값 있는지 찾기. ROWID 이용 (0) | 2014.02.12 |
[ORACLE]존재하는지 안하는지 여부 알아내기 (0) | 2014.02.12 |
[ORACLE]당일분,일주일분, 가장마지막분, 1개월분 구하기 (0) | 2014.02.12 |
Oracle 지난 한 주(일주일) 계산 (0) | 2014.02.12 |