database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
ㆍCUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
CUBRID Q&A 866 게시물 읽기
No. 866
Q.SQL 오류 발생 시, 오류 메시지에 대해.
작성자
inos
작성일
2008-01-21 15:33
조회수
5,339

수고 많으십니다.

다음과 같은 오류 메시지를 개선한다면, 큐브리드가 사용자에게 좀 더 다가갈 듯 합니다.

 

 

1. CREATE 시, 데이터 타입이 빠진 경우.

 

CREATE TABLE a

( a int, b, c int ) ;

 

-----------------------------------------------------------------------------------

1). CUBRID (iBatis + JAVA의 에러 메시지입니다.)

cubrid.jdbc.driver.CUBRIDException: Syntax: please check syntax at \',\', expecting { data type } in type declaration clause.

 

2). MySQL

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \' c int )\' at line 1

 

3). SQL Server

 

정확히 기억은 안나고, \'b에는 데이터 형식이 필요합니다.\'와 같은 오류 메시지가 출력되었습니다.

----------------------------------------------------------------------------------

 

실수를 한 제가 잘못이지만, 컬럼 개수가 많을 때를 대비하여 어디쯤에서 에러가 났는지 알면 좋겠습니다. sqlx에서는 라인 번호, 컬럼 번호까지 나오고, CM에서는 라인 번호까지는 나오지만, iBatis+JAVA로 개발한 경우에는 위의 메시지만 나오네요.(iBatis의 경우 xml에 쿼리를 아무리 이쁘게 적어놔도 실제 실행할 때는 1줄로 전송되기 때문에 라인 번호가 출력되는 건 별 도움이 안 됩니다.)

 

2. unique constraint violations

 

1) CUBRID

 

cubrid.jdbc.driver.CUBRIDException: Operation would have caused one or more unique constraint violations.

 

어떤 제약사항의 어떤 값으로 충돌되는지 정보가 없으므로 디버깅이 좀 어렵습니다.

 

2) MySQL

 

ERROR 1062 (23000): Duplicate entry \'10\' for key 1

 

중복되는 contraint가 어떤 것인지와 어떤 값이 중복된 것인지 출력됩니다.

 

3) Sql Server

 

\"PRIMARY KEY 제약 조건 \'PK__test__023D5A04\'을(를) 위반했습니다. 개체 \'dbo.test\'에 중복 키를 삽입할 수 없습니다.\"

 

constraint의 이름까진 출력이 되네요.

 

건 by 건으로 INSERT하는 거라면 app.에서 디버깅이 쉽겠지만, INSERT INTO SELECT로 INSERT할 때는 다시 SELECT 부분만 가져다가 GROUP BY HAVING을 다시 실행해서 중복되는 값을 찾아야 하고 조금은 번거롭군요.

 

감사합니다.

좋은 한주 되세요.

이 글에 대한 댓글이 총 1건 있습니다.

좋은 의견 감사드립니다.

말씀하신 내용중 일부는 개선사항으로 진행중에 있으며, 다른 사안들에 대하여는 좀더 개선하여 고객이 쉽게 원인을 파악할 수 있도록 개선하도록 하겠읍니다.

 

>수고 많으십니다.

>다음과 같은 오류 메시지를 개선한다면, 큐브리드가 사용자에게 좀 더 다가갈 듯 합니다.

>

>

>1. CREATE 시, 데이터 타입이 빠진 경우.

>

>CREATE TABLE a

>( a int, b, c int ) ;

>

>-----------------------------------------------------------------------------------

>1). CUBRID (iBatis + JAVA의 에러 메시지입니다.)

>cubrid.jdbc.driver.CUBRIDException: Syntax: please check syntax at \',\', expecting { data type } in type declaration clause.

>

>2). MySQL

>ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \' c int )\' at line 1

>

>3). SQL Server

>

>정확히 기억은 안나고, \'b에는 데이터 형식이 필요합니다.\'와 같은 오류 메시지가 출력되었습니다.

>----------------------------------------------------------------------------------

>

>실수를 한 제가 잘못이지만, 컬럼 개수가 많을 때를 대비하여 어디쯤에서 에러가 났는지 알면 좋겠습니다. sqlx에서는 라인 번호, 컬럼 번호까지 나오고, CM에서는 라인 번호까지는 나오지만, iBatis+JAVA로 개발한 경우에는 위의 메시지만 나오네요.(iBatis의 경우 xml에 쿼리를 아무리 이쁘게 적어놔도 실제 실행할 때는 1줄로 전송되기 때문에 라인 번호가 출력되는 건 별 도움이 안 됩니다.)

>

>2. unique constraint violations

>

>1) CUBRID

>

>cubrid.jdbc.driver.CUBRIDException: Operation would have caused one or more unique constraint violations.

>

>어떤 제약사항의 어떤 값으로 충돌되는지 정보가 없으므로 디버깅이 좀 어렵습니다.

>

>2) MySQL

>

>ERROR 1062 (23000): Duplicate entry \'10\' for key 1

>

>중복되는 contraint가 어떤 것인지와 어떤 값이 중복된 것인지 출력됩니다.

>

>3) Sql Server

>

>\"PRIMARY KEY 제약 조건 \'PK__test__023D5A04\'을(를) 위반했습니다. 개체 \'dbo.test\'에 중복 키를 삽입할 수 없습니다.\"

>

>constraint의 이름까진 출력이 되네요.

>

>건 by 건으로 INSERT하는 거라면 app.에서 디버깅이 쉽겠지만, INSERT INTO SELECT로 INSERT할 때는 다시 SELECT 부분만 가져다가 GROUP BY HAVING을 다시 실행해서 중복되는 값을 찾아야 하고 조금은 번거롭군요.

>

>감사합니다.

>좋은 한주 되세요.

 

남재우님이 2008-01-21 20:53에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
869Q.[요청] database간 테이블 복사/이동 [1]
gilbird
2008-01-22
3977
868Q.INSERT INTO SELECT 문제... [1]
inos
2008-01-22
4556
867Q.설치에러관련 [2]
브리드
2008-01-21
3988
866Q.SQL 오류 발생 시, 오류 메시지에 대해. [1]
inos
2008-01-21
5339
865Q.트리거 발생 시, 에러가 발생하는데 원인을 알 길이 없습니다. [1]
최빈
2008-01-21
3455
864Q.큐브리드 매니저에서 클래스 생성시 자동증가 설정.. [1]
김광수
2008-01-19
3515
863Q.sql에 넣을 큐브리드 전용 이스케이프 함수 [1]
이진혁
2008-01-19
3747
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2020 DSN, All rights reserved.
작업시간: 0.043초, 이곳 서비스는
	PostgreSQL v13.0으로 자료를 관리합니다