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
3275 자바 프로시저 작성 문의입니다. 2 제발좀 2009.07.30 12313
3274 BLOB 데이터 select 질문 1 hyperhand 2009.12.23 12311
3273 큐브리드 호스팅에 대해서 질문입니다. 1 안지민 2009.02.18 12281
3272 큐브리드 모델링 툴 1 webdoors 2010.03.13 12246
3271 /etc/rc3.d/S98cubrid 화일 좀 바꿔주세요 1 꽁꽁단무지 2017.01.25 12246
3270 Cubrid Manager에서 데이터 가져오기 와 내보내기 3 atheist 2012.06.12 12202
3269 mysql 쿼리 변환 질문 입니다. 5 초보 2010.03.16 12201
3268 [초보질문] 텍스트파일을 하나의 TABLE로 입력하고 싶습니다. 2 몰라몰라 2011.12.03 12201
3267 windows xp 에서 큐브리드 설치시 오류 3 혀니짱 2011.04.09 12188
3266 큐브리드 방금 깔았는데요. 패스워드가 1 이종옥 2010.01.25 12187
3265 최신 HP-Unix에 큐브리드 커널설정하기 1 그림자 2012.05.11 12183
3264 cannot create poolableconnectionfactory cannot connect to a broker 문의 드립니다. 1 yunhossi 2015.01.29 12181
3263 컴파일 할 때 오류 cannot find -lcurses 13 아주가끔은 2009.10.08 12173
3262 JSP에서 데이터베이스 연결 어떻게 해요? 1 JH 2011.07.12 12170
3261 디비생성에러 5 file giyoung.kim 2011.10.12 12163
3260 Cubrid FUNCTION 한글 깨짐 문제 1 록밥 2017.02.24 12162
3259 윈도우 -> 리눅스 큐브리드 원격접속 문제 1 박대서 2013.04.21 12157
3258 큐브리드와 powerDNS 연동 1 aliveJune 2009.09.04 12139
» 오류코드 출력문의 3 뚜벅초 2016.06.17 12130
3256 큐브리드 매니저 Xe설치후 게시판관리하려면 1 Kai 2014.01.09 12124
Board Pagination Prev 1 ... 32 33 34 35 36 37 38 39 40 41 ... 200 Next
/ 200

Contact Cubrid

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