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 48
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
2394 트리거 동작 문의 1 종이 2016.08.12 14126
2393 MY-SQL INSERT 쿼리문이 오류나서요. 1 펌피 2016.08.11 14889
2392 자바 저장함수 속도 관련문제요.. 1 owlowl 2016.08.11 14118
2391 초기설치후 초기화면 에러 문의입니다 추가 1 오명일 2016.08.10 13820
2390 초기설치후 초기화면 에러 문의입니다 1 오명일 2016.08.10 14019
2389 메모리 산정 부탁드립니다 1 으아악 2016.08.06 12969
2388 파티셔닝으로 성능향상 미비? 1 라면 2016.08.04 13222
2387 from_unixtime 정수 이상의 숫자가 사용될때... 1 봉보로봉봉 2016.08.03 12363
2386 modify 질문드립니다. 1 rikal 2016.08.03 12054
2385 밑에 글 추가 합니다. 1 오명일 2016.08.02 11666
2384 큐브리드 기능 비활성화 추가사진업로드 1 file 오명일 2016.08.02 11476
2383 데이터베이스 기능 비활성화 1 오명일 2016.08.02 10116
2382 GRANT 주기 [Cannot issue GRANT/REVOKE to owner of a class] 에러 발생 1 보물섬 2016.07.26 11178
2381 큐브리드로 작업을 하고 있었는데요 3 별이랑 2016.07.22 11489
2380 last_insert_id() 함수 에러 3 박종훈 2016.07.13 10846
2379 JBoss 7.1.1 와 Cubird 9.3.6 버젼 연동 문의 file 뽀대남 2016.07.12 11060
2378 텍스트 데이터의 검색관련 해서 질문합니다. 1 나이즈 2016.07.11 10208
2377 HA 구성중 서버 이전으로 재구성시 1 라면 2016.07.08 10889
2376 칼럼에 텍스트 입력하기 질문합니다 1 나이즈 2016.07.05 9365
2375 HA 구성 질문 드립니다. 5 secret 바트심슨 2016.07.04 16
Board Pagination Prev 1 ... 76 77 78 79 80 81 82 83 84 85 ... 200 Next
/ 200

Contact Cubrid

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