Background Image

FORUM

2016.06.17 21:59

오류코드 출력문의

조회 수 12117 추천 수 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() 메소드의 리턴값을 원하시는 형태로 파싱하셔야 합니다.


    감사합니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4280
2376 칼럼에 텍스트 입력하기 질문합니다 1 나이즈 2016.07.05 9363
2375 HA 구성 질문 드립니다. 5 secret 바트심슨 2016.07.04 16
2374 오류 좀 봐주세요...ㅜㅜ 1 secret 반갑습니다 2016.07.01 15
2373 죄송하게도 loadjava 다시 질문 올립니다. ^.^; 1 보물섬 2016.07.01 10743
2372 loadjava 유틸리티는 어디에 있나요?? 1 보물섬 2016.06.30 9890
2371 Migration Toolkit을 사용시 예약어를 처리할 수 있을까요? 1 신비 2016.06.30 9541
2370 SELECT 실행 버그 보냅니다 1 file 취우다 2016.06.30 9351
2369 MY-SQL 쿼리를 큐브리드에서 오류가 납니다. 2 secret 펌피 2016.06.29 14
2368 함수 사용시 한글 깨짐 현상 2 펌피 2016.06.28 10195
2367 LEFT JOIN 출력 결과 관련 문의 1 차오이 2016.06.28 10102
2366 Linked Server 조회시 한글깨짐 3 secret 라면파 2016.06.23 15
2365 cubrid manager실행시 remote host closed connection during handshake 오류 1 땡글이아부지.. 2016.06.22 12519
2364 migration 후 EntityGraph 기능 에러 관련 문의드립니다. 1 file 박종훈 2016.06.22 10183
2363 오류의 의미?? 10 천상 2016.06.21 10988
2362 큐브리드 소수점 처리관련 3 file 바람코지 2016.06.18 9842
» 오류코드 출력문의 3 뚜벅초 2016.06.17 12117
2360 cubrid/msg/ 안의 내용을 추가하고싶습니다!.. 1 뚜벅초 2016.06.16 8678
2359 큐브리드 매니자 동일 SQL 재실행 문제 1 file knight 2016.06.15 8651
2358 윈도우 DBA 비번 암호변경 3 천상 2016.06.15 10390
2357 프로시저 변환 문의 2 천상 2016.06.15 9785
Board Pagination Prev 1 ... 76 77 78 79 80 81 82 83 84 85 ... 199 Next
/ 199

Contact Cubrid

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