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


    감사합니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 52
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
1135 오라클에서 큐브리드로 마이그레이션 방법이 있나요? 1 삽질쟁이 2009.03.03 16004
1134 오라클의 LAG (위 Row 값), LEAD (아래 Row 값) 가져올수 있는 쿼리 대체할만한것이 있나요? 2 거만고양이 2015.03.29 12419
1133 오라클의 Aggregation Function(집합 함수) 관련 문의 2 샤방석이 2013.11.14 24635
1132 오라클의 SUBSTRB 기능 문의 3 방글이 2023.12.26 110
1131 오라클의 USER_CONSTRAINTS 1 agkim 2013.10.28 9283
1130 오라클의 contains()문과 비슷한 기능을 소개해주세요 1 타이거팀 2009.02.17 36302
1129 오라클의 listagg 기능이 큐브리드에 있을까요? 5 위니텍 2018.11.21 1261
1128 오라클의 with 테이블명 as 구문은 큐브리드에서 사용이 안되는지요? 2 최범규 2017.04.06 9219
1127 오류 관련 문의 드립니다. 1 secret 아코 2015.05.27 10
1126 오류 관련 문의 드립니다. 1 secret 아코 2015.05.28 11
1125 오류 꼭 좀 도와주세요 ㅠㅠ 8 딩이 2010.08.25 9852
1124 오류 메세지 문의 Derived column names are not allowed for simple class specifications. 4 달이맘 2023.12.01 125
1123 오류 좀 봐주세요...ㅜㅜ 1 secret 반갑습니다 2016.07.01 15
1122 오류 좀 확인해주세요ㅜㅜ 2 푸른잔디 2009.12.04 21925
1121 오류 코드 관련 문의 1 ........ 2013.02.12 5819
1120 오류 해결방법을 몰라 질문드립니다. 4 삼구 2012.05.16 11307
1119 오류 확인 부탁합니다, 1 배철 2020.07.02 734
1118 오류(연결을 얻을수 없습니다.) 1 맑고푸른하늘 2011.03.25 12002
1117 오류가 이런게나서 이중화 한쪽이 안올리가는데 무슨에런 인가요? 1 coolkkm 2017.12.09 595
1116 오류구문이 뜹니다. 3 초보 2010.02.03 8841
Board Pagination Prev 1 ... 139 140 141 142 143 144 145 146 147 148 ... 200 Next
/ 200

Contact Cubrid

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