* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
Linux 64bit |
|
11.2.1 |
|
sqlgate |
|
* 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;