Background Image

FORUM

2016.06.17 21:59

오류코드 출력문의

조회 수 12130 추천 수 0 댓글 3
?

단축키

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 디렉토리 압축


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

데이터베이스 서버 에러

데이터베이스 서버 프로세스는 에러 발생 시 서버 에러 코드를 사용한다. 서버 에러는 서버 프로세스를 사용하는 모든 작업에서 발생할 수 있다. 예를 들어 질의를 처리하는 프로그램 또는 cubrid 유틸리티 사용 중에도 발생할 수 있다.

데이터베이스 서버 에러 코드의 확인

  • CUBRID/include/dbi.h 파일의 #define ER_로 시작하는 정의문은 모두 서버 에러 코드를 나타낸다.
  • CUBRID/msg/en_US (한글은 ko_KR.eucKR 혹은 ko_KR.utf8) /cubrid.msg 파일의 "$set 5 MSGCAT_SET_ERROR" 이하 메시지 그룹은 모두 서버 에러 메시지를 나타낸다.

CCI 드라이버를 사용하여 C로 프로그램을 작성할 때는 에러 코드 번호를 직접 사용하는 것보다는 에러 코드 이름을 사용할 것을 권장한다. 예를 들어, 고유 키 위반 시 에러 코드 번호는 -670 혹은 -886이지만 이 번호보다는 ER_BTREE_UNIQUE_FAILED 혹은ER_UNIQUE_VIOLATION_WITHKEY을 사용하는 것이 프로그램 가독성을 높이기 때문이다.

하지만 JDBC 드라이버를 사용하여 JAVA로 프로그램을 작성할 때는 dbi.h 파일을 포함할 수 없으므로 에러 코드 번호를 직접 사용하도록 한다. JDBC의 경우 SQLException 클래스의 getErrorCode() 메서드를 통해 에러 번호를 얻을 수 있다.



내용으로 확인하여

getErrorCode()를 했더니 cubrid/msg/ .. /cubrid.msg에서

493 Syntax: %1$s %2$s

494 Semantic: %1$s %2$s

495 Execute: %1$s %2$s


에러를 확인 할 수 있었습니다.

예를 들어

494 Semantic: %1$s %2$s

%1$s 에는 쿼리가 %2$s 에는 오류가 출력 되는 것 같은데..(추측)


%2$s  데이터를 가져오고 싶습니다,

이 부분만 따로 꺼낼 수 없나요?


  • ?
    김승훈 2016.06.17 23:00

    안녕하세요. 큐브리드를 이용해 주셔서 감사합니다.


    JDBC의 경우 Exception 발생시 SQLException 클래스의 getMessage() 메소드를 사용해 보시기 바랍니다.


    감사합니다.

  • ?
    뚜벅초 2016.06.17 23:17

    내용으로 확인하여

    getErrorCode()를 했더니 cubrid/msg/ .. /cubrid.msg에서

    493 Syntax: %1$s %2$s

    494 Semantic: %1$s %2$s

    495 Execute: %1$s %2$s


    에러를 확인 할 수 있었습니다.

    예를 들어

    494 Semantic: %1$s %2$s

    %1$s 에는 쿼리가 %2$s 에는 오류가 출력 되는 것 같은데..(추측)


    %2$s  데이터를 가져오고 싶습니다,

    이 부분만 따로 꺼낼 수 없나요?


     getMessage()에서는 제가 원하는  %2$s  만을 가져오기가 어렵습니다.

    Semantic:before'

    ,id

    ,seq

    ...'

    Attribute"seq"wasnotfound. 블라블라블라...[CASINFO


    저는 Attribute"seq"wasnotfound.  글자만 가지고 오고싶어서. 문의글 남김니다.

    이것에 해당되는 문구는 cubrid.msg에서 확인이 되었습니다.

    Attribute"seq"wasnotfound.  문구나, 문구 옆에 줄번호에 해당되는 정보라도 가져오고 싶어 글을 올립니다.

  • ?
    김승훈 2016.06.18 01:47

    cubrid.msg 파일에서 확인하신 %1$s 와 %2$s는 에러 발생시 전달될 파라미터의 포맷을 지정하는 것 입니다.


    아래와 같은 메시지를 getMessage() 메소드로 출력했을 경우,

    Syntax: In line 1, column 11 before ' db_class'

    Syntax error: unexpected 'where', expecting SELECT or VALUE or VALUES or '(' [CAS INFO-***.***.***.***:30000,1,4528],[SESSION-2],[URL-jdbc:cubrid:***.***.***.***:30000:demodb:dba:********:].


    Syntax: %1$s %2$s 는 다음과 같이 구성됩니다. (색상 참고)

     cubrid.msg 내용

    getMessage() 내용 

     Syntax: 

     Syntax: 

     %1$s 

      In line 1, column 11 before ' db_class'

    Syntax error: unexpected 'where', expecting SELECT or VALUE or VALUES or '('

     %2$s

     [CAS INFO-***.***.***.***:30000,1,4528],[SESSION-2],[URL-jdbc:cubrid:***.***.***.***:30000:demodb:dba:********:].


    따라서 문의하신 Attribute"seq"wasnotfound. 같이 특정 메시지를 추출하기 위해서는

    응용에서 getMessage() 메소드의 리턴값을 원하시는 형태로 파싱하셔야 합니다.


    감사합니다.


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

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

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

  3. Cannot make connection to master server.... Bad file descriptor T.T

  4. [초보질문] 큐브리드 매니저에서 데이타베이스 종료시 에러

  5. 큐브리드 매니저에서 UTF-8을 사용하여 데이터 입력시 글짜 깨짐 현상

  6. 이미지사진파일 업로드 방법

  7. OLEDB 에서의 DATE_FORMAT 함수 문의

  8. Manager 접속오류

  9. archive log 삭제 관해서

  10. MS-SQL 2008 -> CUBRID로 마이그레이션 방법..

  11. lock_timeout_in_secs 값이 적용이 안됩니다.

  12. checkdb(데이터베이스검사) 관련 질문드립니다...

  13. 오류(연결을 얻을수 없습니다.)

  14. IIS 7.5 x64 / PHP 5.3 x64 / Cubrid R4.0 x64...

  15. 큐브리드 매니저 9.3.6.0006 - INSERT/UPDATE 문 생성 시, NULL 오타

  16. 무슨 오류인가요?

  17. primary key의 인덱스에 관한 질문

  18. sql 구분 오류좀 봐주세요

  19. MODIFY CONSTRAINT 가능한가요?

  20. 컴포지션 관련해서 문의 드립니다.

  21. 아카이브 로그에 대해서...

  22. 큐브리드 64bit 설치 후 실행 문제.

Board Pagination Prev 1 ... 157 158 159 160 161 162 163 164 165 166 ... 200 Next
/ 200

Contact Cubrid

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