큐부리드 함수 문의

by ozro posted Nov 07, 2022


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
 Linux 64bit
CUBRID Ver.
11.2.1
CUBRID TOOL Ver.
sqlgate
응용 환경(API)
 


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

함수 사용이 많고 쿼리문 작성시 함수 때문에 에러가 너무 자주나 

임시 테이블로 함수부분만 분리하여 쿼리를 만들었습니다. 

(함수를 사용한건 조인이 너무많고 목록 데이터를  포문으로 가공하는 경우가 많아  어쩔수 없는 부분이 있습니다. )

이렇게 해도 쿼리 성공 여부가 항상 일정하지가 않습니다. 계속 잘 실행되다가도

stored procedure .... 에러가 발생합니다. 왜 그럴까요???

 

*함수 자바 파일 첨부하였습니다. 

 

with tmp as (
select 
reg_no, rank_no,
GET_CG_WON_SML_RN(reg_no, rank_no) as GET_CG_WON_SML_RN,
GET_CD_NM('CG_DM',reg_o_cd) as CG_DM_GET_CD_NM,
GET_CG_RD_SITE_NMS(reg_no, rank_no) as GET_CG_RD_SITE_NMS,
GET_CG_SITE_CHGYN(reg_no, rank_no) as  GET_CG_SITE_CHGYN,
GET_CG_MK_CHGYN(reg_no, rank_no)as GET_CG_MK_CHGYN,
GET_CG_DUP_MINE_CHGYN(reg_no, rank_no) as GET_CG_DUP_MINE_CHGYN,
GET_CG_WON_MK_NMS(reg_no, rank_no) as GET_CG_WON_MK_NMS,
GET_CG_RD_WON_MK_NMS(reg_no, rank_no) as GET_CG_RD_WON_MK_NMS,
GET_CG_DUPMINEH_RN(reg_no, rank_no) as GET_CG_DUPMINEH_RN,
GET_CG_RD_DUPMINEH_RN(reg_no, rank_no) as GET_CG_RD_DUPMINEH_RN
from cg_won_his 
where reg_no='000125'
)


select 
    FMT_DT(REPLACE(acc_dt,'-',''),'M') as acc_dt, 
       IF(CHAR_LENGTH(RTRIM(armk_lst)) > 0,'부'||REPLACE(armk_lst,',',', 부'),'') as R_ARMK_LST,
       IF(CHAR_LENGTH(RTRIM(acc_no)) > 0,'제'|| to_number(acc_no) ||'호','') as ACC_NO_COMBO, 
       decode(armk_no,'0','',IF(CHAR_LENGTH(RTRIM(armk_no)) > 0,'부기'|| armk_no ||'호','')) as R_ARMK_NO, 
       FMT_DT(replace(a.reg_dt,'-',''),'M') as reg_dt1,
       a.rank_no,  
       IF(CHAR_LENGTH(RTRIM(lnd_r)) > 0,'제'|| lnd_r ||'호','') as LND_COMBO,
       IF(CHAR_LENGTH(RTRIM(dt_to)) > 0,'존속기간   ' || REPLACE(FMT('D', dt_fr),'-','/') || '~' || REPLACE(FMT('D',dt_to),'-','/')||'   '||  term_yr ||'개년','') as dt_combo, 
       IF(CHAR_LENGTH(RTRIM(GET_CG_WON_MK_NMS)) > 0,GET_CG_WON_MK_NMS,'') as MK_COMBO,
       GET_CG_WON_SML_RN as F_SML_NM_RN,
       CG_DM_GET_CD_NM REG_O_CD_NM, 
       area_chg,
       dt_chg,
       IF(CHAR_LENGTH(RTRIM(reg_area)) > 0,'등록면적    '||reg_area|| decode(area_gbn,'1','평','0','ha'),'') as REG_AREA_GBN,
       GET_CG_RD_SITE_NMS as SITE_NM,
       GET_CG_SITE_CHGYN as SITE_CHG_YN,
       GET_CG_MK_CHGYN as MK_CHG_YN,
       REPLACE(GET_CG_DUPMINEH_RN,',','') as DUP_REG_NO_NMS,
       GET_CG_DUP_MINE_CHGYN as DM_CHG_YN,
       IF(CHAR_LENGTH(RTRIM(jk_no)) > 0,'조광권번호   '|| jk_no,'')  as jk_no_nm,
       area_dsp, land_dsp, sml_chg, term_dsp,  jk_dsp, jk_chg,
       ers_dsp, ers_chg,
       to_number(a.reg_no) as reg_no,
       jk_no,
       IF(
             area_dsp='1' and  agbn_chg='1' or
             area_dsp='1' and  area_chg='1' or
             land_dsp='1' and  land_chg='1' or 
             land_dsp='1' and  sml_chg='1' or 
             term_dsp='1' and  dt_chg='1' or  
             jk_dsp='1' and jk_chg='1' or 
             ers_dsp='1' and ers_chg='1' or 
             GET_CG_DUP_MINE_CHGYN='1' or 
             GET_CG_SITE_CHGYN ='1' or 
             GET_CG_MK_CHGYN='1', '#','')||seq_no as seq_no,
       IF(
             area_dsp='1' and  agbn_chg='1' or
             area_dsp='1' and  area_chg='1' or
             land_dsp='1' and  land_chg='1' or 
             land_dsp='1' and  sml_chg='1' or 
             term_dsp='1' and  dt_chg='1' or  
             jk_dsp='1' and jk_chg='1' or 
             ers_dsp='1' and ers_chg='1' or 
             GET_CG_DUP_MINE_CHGYN='1' or 
             GET_CG_SITE_CHGYN ='1' or 
             GET_CG_MK_CHGYN='1', '#','')||chg_cnt as chg_cnt,  
       IF(
             area_dsp='1' and  agbn_chg='1' or
             area_dsp='1' and  area_chg='1' or
             land_dsp='1' and  land_chg='1' or 
             land_dsp='1' and  sml_chg='1' or 
             term_dsp='1' and  dt_chg='1' or  
             jk_dsp='1' and jk_chg='1' or 
             ers_dsp='1' and ers_chg='1' or 
             GET_CG_DUP_MINE_CHGYN='1' or 
             GET_CG_SITE_CHGYN ='1' or 
             GET_CG_MK_CHGYN='1', '#','')||
             CG_DM_GET_CD_NM||IF(CG_DM_GET_CD_NM = '','',',')||
       IF(GET_CG_SITE_CHGYN='1','#','')||IF(GET_CG_RD_SITE_NMS  = '','','소재지,')||
       GET_CG_RD_SITE_NMS||
       IF(term_dsp='0','',IF(dt_chg='1','#','')||
       IF(CHAR_LENGTH(RTRIM(dt_to)) > 0,'존속기간   ' ||FMT('D', dt_fr) || '~' ||FMT('D',dt_to)||'   '||  term_yr ||'개년','') )||
       IF(CHAR_LENGTH(RTRIM(dt_to)) > 0,'',',')||
       IF(GET_CG_MK_CHGYN='1','#','')||
       IF(GET_CG_WON_MK_NMS  = '','','광종명,')||
       IF(GET_CG_MK_CHGYN='1','#','')||GET_CG_RD_WON_MK_NMS||
       IF(GET_CG_WON_MK_NMS  = '','',',')||
       IF(jk_dsp='0','',IF(jk_chg='1','#',''))||IF(jk_dsp='0' or jk_no='','',',')||
       IF(area_dsp='0','',IF(area_chg='1','#','')||
       IF(CHAR_LENGTH(RTRIM(reg_area)) > 0,'등록면적    '||reg_area||decode(area_gbn,'1','평','0','ha'),''))||
       IF(area_dsp='0' or reg_area='','',',')||
       IF(
            land_dsp='1' and land_chg='1' or
            land_dsp='1' and sml_chg='1', '#','')||
            IF(
            land_dsp='1' , 
            '지적 '|| 
            (SELECT u.cdnm FROM unicode u WHERE u.gcd = 'G' AND u.cd = a.lnd_r)
            || '  '|| lnd_no ||' 호  '||GET_CG_WON_SML_RN,'')||
            IF(land_dsp='0' or lnd_r='','',',')||
       IF(GET_CG_DUP_MINE_CHGYN='1','#','')||
       IF(GET_CG_DUPMINEH_RN  = '','','중복광구,')||GET_CG_RD_DUPMINEH_RN as won_combo,
       etc
from cg_won_his a, tmp b
where a.reg_no=b.reg_no
and a.rank_no = b.rank_no
AND a.reg_no = '000125'
and a.rank_no>1;

 


Articles

10 11 12 13 14 15 16 17 18 19