PLSQL 커서관련 문의 0 1 1,639

by 나나나나 [2016.01.28 23:08:45]


호출 CALL PKG_CALC.PRC_ST300('201512','CODE1','ID')

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

PROCEDURE PRC_ST300(V_COM_YM IN VARCHAR2,V_CODE IN VARCHAR2, V_EMP_CD IN VARCHAR2 DEFAULT 'ID') IS
BEGIN

      FOR COM_RULES IN (  SELECT M.COM_CD
                                 , M.CALC_STEP
                                 , M.INSCO_CD
                                 , S1_BCOLS
                                 , R.SRC_COMS_SUIP_AMT_SELECT
                                 , R.SRC_COMS_JIGUB_AMT_SELECT
                                 , R.SRC_ACOMS_SELECT
                                 , R.SRC_BCOMS_SELECT
                                 , R.SRC_BCOMS_WHERE

                      FROM TABLE .... 

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

           vSQL :=           'INSERT                '
                   ||CHR(10)||'  INTO AAA ('
                   ||CHR(10)||'     )                                                        '
                   ||CHR(10)||'SELECT *'
                   ||CHR(10)||'  FROM ( '
                   ||CHR(10)||'        SELECT 
                   ||CHR(10)||'             , (' ||COM_RULES.SRC_COMS_SUIP_AMT_SELECT  ||') * ((NVL(SU.SUIP_RATE,100)/100)  * (NVL(SU.SUIP_GG_RATE,100) /100) ) AS SUIP_AMT'
                   ||CHR(10)||'             , (' ||COM_RULES.SRC_COMS_JIGUB_AMT_SELECT ||') * ((NVL(SU.JIGUB_RATE,100)/100) * (NVL(SU.JIGUB_GG_RATE,100)/100) ) AS JIGUB_AMT'

 
====================================
 
커서에 9개의 코드값이 담겨서 9 X 알파의 데이터를 쌓는게 정상인데,
현재 커서에 담긴 첫 번째 정상적인 코드값과 나머지 커서에 없는 비정상적인 코드값이 INSERT되고 있습니다

LOOP 안에 DBMS_OUTPUT.PUT_LINE()를 넣어서 그런지 현재 오라클 툴에서는 첫 번째 코드값만 출력하고 있어
문제의 원인을 파악하는 것이 상당히 어려운 상태입니다.
 
DB툴에서 INSERT되는걸 상세하게 보는 방법이나, 
제대로 커서를 타고있는지 확인할 수 있는 방법이 없을까요??
 
 
++
DB 툴에서 해당 쿼리를 직접 돌리면 값이 문제없이 나오는데, 
CALL PKG_CALC.PRC_ST300('201512','CODE1','ID')를 사용하면 값이 안맞네요....
다른게 호출될까봐 IF조건 다 지우고, 로그쌓는것도 지우고 커서와 INSERT문만 남겨놓고 돌려도 값이 안 맞습니다.
 
by 나나나나 [2016.01.29 19:40:48]

변수 선언해 놓은것에 값이 들어가지 않아 저런 문제가 발생했는데

이것도 추정이고 정확한 이유를 모르겠네요.....

왜 커서에 담기지 않는게 insert됐는지...(커서에 값을 담을 때 저 변수를 사용하는것도 아닌데....)

어찌됐든 해결은 했으나 찝찝하네요

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