* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
리눅스 64 비트 |
|
11.2 |
|
sqlgate |
|
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
함수 사용이 많고 쿼리문 작성시 함수 때문에 에러가 너무 자주나
임시 테이블로 함수부분만 분리하여 쿼리를 만들었습니다.
(함수를 사용한건 조인이 너무많고 데이터 가공이 필요해서 어쩔수 없는 부분이 있습니다. )
이렇게 해도 쿼리 성공 여부가 항상 일정하지가 않습니다. 계속 잘 실행되다가도
stored procedure .... 에러가 발생합니다. 왜 그럴까요???
with tmp as (
select
wh.reg_no,wh.rank_no,
GET_CG_RD_SITE_NMS1(wh.reg_no, wh.rank_no) as GET_CG_RD_SITE_NMS1,
GET_CD_NM('G',wh.lnd_r) as G_GET_CD_NM,
GET_CG_WON_SML_RN(wh.reg_no, 1) as GET_CG_WON_SML_RN,
GET_CG_WON_MK_NMS(wh.reg_no,wh.rank_no) as GET_CG_WON_MK_NMS,
GET_CG_RD_DUP( wh.reg_no, wh.rank_no) as GET_CG_RD_DUP,
GET_CG_RD_RANK(wh.reg_no) as GET_CG_RD_RANK
from won_his wh , reg_site_his rsh ,reg_mk_his rmh
where wh.reg_no = rsh.reg_no
and wh.reg_no = rmh.reg_no
and wh.rank_no = rsh.rank_no
and wh.rank_no = rmh.rank_no
AND wh.rank_no=1
and wh.reg_no='000125'
and rownum=1
)
select
wh.seq_no,
FMT('D',wh.acc_dt) as acc_dt1,
to_number(wh.reg_no) as reg_no,
to_number(wh.reg_no) as reg_no1,
GET_CG_RD_SITE_NMS1 as RD_SITE_NM1,
IF(CHAR_LENGTH(RTRIM(wh.lnd_r)) > 0,'제'|| wh.lnd_r ||'호','') as LND_COMBO,
IF(CHAR_LENGTH(RTRIM(wh.acc_no)) > 0,'제'|| to_number(wh.acc_no) ||'호','') as ACC_COMBO,
IF(length(wh.lnd_r)>1 and wh.land_chg='1','#','')||IF(wh.lnd_r='000','',G_GET_CD_NM)||IF(G_GET_CD_NM = '' and wh.lnd_r!='000','@','')||
IF(length(wh.lnd_r)>1 and wh.land_chg='1','#','')||IF(CHAR_LENGTH(RTRIM(wh.lnd_no)) > 0, to_number(wh.lnd_no) ||'호','')||IF(GET_CG_WON_SML_RN = '','@','')||
IF(GET_CG_WON_SML_RN = '' and wh.sml_chg='1','#','')||GET_CG_WON_SML_RN as lnd_combo1,
GET_CG_WON_MK_NMS as MK_NM,
wh.reg_area,
FMT_DT(replace(dt_fr,'-',''),'M')||' '||IF(length(dt_fr)>2,'부터','') as dt_fr,
FMT_DT(replace(dt_to,'-',''),'M')||' '||IF(length(dt_to)>2,'까지','') as dt_to,
IF(wh.term_yr='0','',wh.term_yr)||IF(wh.term_yr='0','','년') as term_yr,
FMT_DT(replace(dt_fr,'-',''),'M')||' '||IF(length(dt_fr)>2,'부터 ','')||FMT_DT(replace(dt_to,'-',''),'M')||' '||IF(length(dt_to)>2,'까지@','')||
IF(wh.term_yr='0','',wh.term_yr)||''||IF(wh.term_yr='0','','년') as dt_info,
to_char(term_yr) as lt,
FMT_DT(replace(wh.reg_dt,'-',''),'M') as reg_dt1,
case when reg_dt > '20011231' then '' else '광업 등록령 제91조에 의거 2001년 12 월 31일 전산이기' end as tt,
rsh.chg_yn,
rmh.chg_yn as rmh_yn,
wh.area_chg,
wh.dt_chg,
wh.reg_area|| ' ' ||decode(area_gbn,'1','평','0','ha') as reg_area_gbn,
IF(CHAR_LENGTH(RTRIM(armk_lst)) > 0,'부'||replace(armk_lst,',',', 부'),'') as R_ARMK_LST,
decode(armk_no,'0','',IF(CHAR_LENGTH(RTRIM(armk_no)) > 0,'부기'|| armk_no ||'호','')) as R_ARMK_NO,
wh.land_chg,
wh.sml_chg,
wh.chg_cnt,
to_number(wh.reg_no) as reg_first,
IF(GET_CG_RD_DUP = '','','광구중복@')||GET_CG_RD_DUP||
IF(GET_CG_RD_DUP = '','','@')||wh.chg_cnt as DUP_REG_NO_NMS,
GET_CG_RD_RANK as rankno
from cg_won_his wh, cg_reg_site_his rsh, cg_reg_mk_his rmh, tmp b
where wh.reg_no = rsh.reg_no
and wh.reg_no = rmh.reg_no
and wh.reg_no = b.reg_no
and wh.rank_no = rsh.rank_no
and wh.rank_no = rmh.rank_no
and wh.rank_no = b.rank_no
and wh.rank_no=1
and wh.reg_no='000125'
and rownum=1;