Background Image

FORUM

2017.08.20 10:47

실행 오류 -494 문의

조회 수 1940 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window7 32bit, Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 수행 결과
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


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



SELECT

DECODE(LA.ARREAR_STATUS_CODE, 'paid', NVL(LA.DELAY_DAY, 0)

, DECODE(SIGN(TRUNC(SYSDATE - LA.ARREAR_LIMIT_DATE)), -1, 0, TRUNC(SYSDATE - LA.ARREAR_LIMIT_DATE))) DELAY_DAY

FROM LON_ARREAR LA;


함수들을 사용해서 출력하는 select쿼리입니다. 위의 쿼리문은 정상적으로 실행이 됩니다.

현재 이 쿼리무문장을 포함해서 뷰를 만들었습니다.

뷰는 아래와 같이 문제없이 생성됐습니다. 생략된 문장들이 있지만 문제되는 부분은 없습니다.


CREATE OR REPLACE VIEW "LON_ARREAR_V" AS 

  SELECT LA.LOAN_NO

     , UU.USER_ID, UU.BARCODE_NO

     , UU.USER_NAME, NVL(UU.TEL1, UU.TEL2) TEL, UU.MOBILE, UU.EMAIL

. . .

. . .

     , DECODE(LA.ARREAR_STATUS_CODE, 'paid', NVL(LA.DELAY_DAY, 0), DECODE(SIGN(TRUNC(SYSDATE - LA.ARREAR_LIMIT_DATE)), -1, 0, TRUNC(SYSDATE - LA.ARREAR_LIMIT_DATE))) DELAY_DAY

. . .

. . .

FROM LON_ARREAR LA

     , LON_LOAN LL

     , USR_USER UU

     , CAT_BASIC CB

     , CAT_ITEM CI

  WHERE LA.LOAN_NO = LL.LOAN_NO

    AND LA.USER_ID = UU.USER_ID

    AND LA.ITEM_NO = CI.ITEM_NO

    AND CB.CONTROL_NO = CI.CONTROL_NO;


그리고 CREATE OR REPLACE VIEW "LON_ARREAR_V" AS 를 제외한 select문을 실행해보면 문제없이 실행되는 것도 확인 했습니다.

문제는 SELECT * FROM lon_arrear_v; 로 실행하면 아래와 같은 오류가 나오고 있습니다.


실행 오류 : -494

Semantic: before ' )), -1,  cast( cast(0 as bigint) as numeric),  cast( trunc( c...'

check syntax at 'default' select lon_arrear_v.loan_no, lon_arrear_v.user_id, lon_arrea...


아래의 문장을 제외하고 뷰를 만들면 SELECT * FROM lon_arrear_v; 가 오류나지 않고 제대로 실행 되고 있습니다.

DECODE(LA.ARREAR_STATUS_CODE, 'paid', NVL(LA.DELAY_DAY, 0)

, DECODE(SIGN(TRUNC(SYSDATE - LA.ARREAR_LIMIT_DATE)), -1, 0, TRUNC(SYSDATE - LA.ARREAR_LIMIT_DATE))) DELAY_DAY


cast문제인것 같아서 ARREAR_LIMIT_DATE의 데이터타입인 datetime으로 맞추기 위해 SYSDATE를 SYSDATETIME으로 바꿔서 연산을 해봐도 결과는 똑같습니다. 또한 CAST함수를 사용해서 datetime으로 cast를 해줘도 오류가 발생합니다.

어떤식으로 변경해야할까요??


  • ?
    오명환 2017.08.22 18:42

    view rewrite하면서, trucate()함수의 default 변경이 다르게 처리되어서 발생하는 오류입니다.

    TRUNC(SYSDATE - LA.ARREAR_LIMIT_DATE) 형태로 된 부분을 TRUNC(SYSDATE - LA.ARREAR_LIMIT_DATE, 0) 로 변경해서 수행해보세요.


  1. No Image notice by admin 2024/04/23 by admin
    Views 31 

    CUBRID 사용자를 위한 DBeaver 도구 출시 안내

  2. SQLGate for CUBRID 영구 무료 라이선스 제공

  3. 특정DB만 접근 시간이 현저하게 오래 걸리는 문제

  4. jdbc 연동시의 charset 강제 변경 방법

  5. 도커로 HA환경 구성 테스트중 hb start..

  6. 이중화 관련 문의드립니다.

  7. 큐브리드 마스터 복제 관련 문의 드립니다.

  8. 큐브리드 다운로드 에러

  9. CUBRID Migration Toolkit "orai18n.jar" 추가 방법

  10. CUBRID 에러 로그 관련 확인 요청

  11. DB링크로 조회시 문자타입이 조회되지 않고 있습니다.

  12. 다른 사용자 계정에서 csql로 localhost 접근 문제

  13. [성능이슈] 큐브리드 함수 사용으로 인한 성능이슈

  14. CUBRID 11.2 rpm 설치시 cubrid 계정 패스워드

  15. Cubrid JDBC 버전에 따라 출력되는 결과가 다릅니다.

  16. select 질의문 문의

  17. cubrid statdump 기술 문의드립니다.

  18. 날짜 형식 변환에 대해서 궁금해서 올립니다.

  19. 컬럼의 Enum DataType 가져오는것 문의

  20. Redhat 8버전 tls 1.0 에러

  21. 테이블이 어떤 스키마(데이터베이스)에 속해있는지 알 수 있는 방법이 있나요?

  22. 테이블 생성시 REUSE_OID 옵션끄기 문의드립니다

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales