[ERROR] JDBC java.sql.SQLException 에러
## java.sql.SQLException: 인덱스에 IN 또는 OUT 매개변수가 없음 :: 30
==>
PreparedStatement에서 매개변수의 숫자가 맞지 않은경우이다.
setString(30, "aaa); 와 같이 30번에 대한 setXXX()가 없는 경우.
## ORA-01006: 바인드 변수가 없습니다.
PreparedStatement에서 ?의 개수보다 setXXX()의 개수가 더 많은 경우
## java.sql.SQLException: ORA-01008: 일부 변수가 결합되지 않았습니다.
? 의 개수만큼 pstmt.setXXX() 를 수행하지 않아서 나는 에러임
## java.sql.SQLException: ORA-00904: 열명이 부적합합니다
select 나 insert 하는 컬럼명이 잘못된 경우..
## java.sql.SQLException: ORA-00913: 값의 수가 너무 많습니다
입력할려는 칼럼의 갯수가 values () 란 안의 데이터 갯수보다 모자랄때 생기는 에러
ex) insert into aaa (val1, val2) values(?, ?, ?)
## ORA-01438: 지정한 정도를 초과한 값이 열에 지정되었습니다
CHAR 10 에 20자리의 문자를 넣는 경우..
## java.sql.SQLException: ORA-01000: 최대 열기 커서 수를 초과했습니다
while 안에 rs 가 있는 경우 rs를 close 해야 한다.
ResultSet rs = null;
while (it.hasNext()) {
rs = stmt.executeQuery(sql);
while(rs.next()){
} // while 2
// 꼭 rs 를 close 하자
try{rs.close(); rs = null;}catch(Exception e){}
} // while 1
ORA-00932: 데이터 유형이 일치하지 않습니다
==> int 컬럼에 String을 선언한 경우
ORA-01722: 수치가 부적합합니다
http://blog.naver.com/hschoi82?Redirect=Log&logNo=20027341968
문자인데 숫자처럼 썼다던가(비교했다던가)
숫자인데 문자처럼 썼다던가 했을 경우 생긴다.
또는 문자에 Null이거나 공백이 있는데 숫자형식으로 바꾼경우..
이 경우는 Trim을 시켜준다.
NVL명령어는 형이 같아야 한다.
//======================= 공간 연산 ==============================
## USER_SDO_GEOM_METADATA 테이블을 읽는 데 실패했습니다
==> user_sdo_geom_metadata 추가 및 공간 인덱스를 확인한다.
## java.sql.SQLException: ORA-29875: ODCIINDEXINSERT 루틴을 수행하는 곳에 실패가 있습니다
ORA-13365: 층 SRID가 도면 SRID와 일치하지 않음
ORA-06512: "MDSYS.SDO_INDEX_METHOD_9I", 줄 319에서
ORA-06512: 줄 1에서
==> user_sdo_geom_metadata.SRID 컬럼과 일치해야 한다.
입력된 SRID와 insert 시의 SRID를 동일하게 ..
오라클에서는 8307이 WGS84 이다.
## java.sql.SQLException: ORA-13050: 스페이셜 객체를 구성할 수 없습니다
ORA-06512: "MDSYS.SDO_3GL", 줄 41에서
ORA-06512: "MDSYS.MD2", 줄 726에서
ORA-06512: "MDSYS.SDO_GEOM", 줄 2950에서
ORA-06512: "MDSYS.SDO_GEOM", 줄 2977에서
==>
1. Data 가 유효한지 확인을 하라..
SELECT SDO_GEOM.VALIDATE_GEOMETRY(a.coordinate, 0.005) valid
FROM PMI_apa_1 a
SELECT SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(a.coordinate, 0.005) valid
FROM PMI_apa_1 a ;
2. 저장된 데이터의 Dimension(GTYPE)이 요청 Dimension 이랑 같은지 확인!!!
SELECT a.coordinate FROM PMI_apa_1 a ;
3. 컬럼이 null 인지 확인한다.
null 인경우 공간 인덱스를 사용 할 수 없다.
==>
PreparedStatement에서 매개변수의 숫자가 맞지 않은경우이다.
setString(30, "aaa); 와 같이 30번에 대한 setXXX()가 없는 경우.
## ORA-01006: 바인드 변수가 없습니다.
PreparedStatement에서 ?의 개수보다 setXXX()의 개수가 더 많은 경우
## java.sql.SQLException: ORA-01008: 일부 변수가 결합되지 않았습니다.
? 의 개수만큼 pstmt.setXXX() 를 수행하지 않아서 나는 에러임
## java.sql.SQLException: ORA-00904: 열명이 부적합합니다
select 나 insert 하는 컬럼명이 잘못된 경우..
## java.sql.SQLException: ORA-00913: 값의 수가 너무 많습니다
입력할려는 칼럼의 갯수가 values () 란 안의 데이터 갯수보다 모자랄때 생기는 에러
ex) insert into aaa (val1, val2) values(?, ?, ?)
## ORA-01438: 지정한 정도를 초과한 값이 열에 지정되었습니다
CHAR 10 에 20자리의 문자를 넣는 경우..
## java.sql.SQLException: ORA-01000: 최대 열기 커서 수를 초과했습니다
while 안에 rs 가 있는 경우 rs를 close 해야 한다.
ResultSet rs = null;
while (it.hasNext()) {
rs = stmt.executeQuery(sql);
while(rs.next()){
} // while 2
// 꼭 rs 를 close 하자
try{rs.close(); rs = null;}catch(Exception e){}
} // while 1
ORA-00932: 데이터 유형이 일치하지 않습니다
==> int 컬럼에 String을 선언한 경우
ORA-01722: 수치가 부적합합니다
http://blog.naver.com/hschoi82?Redirect=Log&logNo=20027341968
문자인데 숫자처럼 썼다던가(비교했다던가)
숫자인데 문자처럼 썼다던가 했을 경우 생긴다.
또는 문자에 Null이거나 공백이 있는데 숫자형식으로 바꾼경우..
이 경우는 Trim을 시켜준다.
NVL명령어는 형이 같아야 한다.
//======================= 공간 연산 ==============================
## USER_SDO_GEOM_METADATA 테이블을 읽는 데 실패했습니다
==> user_sdo_geom_metadata 추가 및 공간 인덱스를 확인한다.
## java.sql.SQLException: ORA-29875: ODCIINDEXINSERT 루틴을 수행하는 곳에 실패가 있습니다
ORA-13365: 층 SRID가 도면 SRID와 일치하지 않음
ORA-06512: "MDSYS.SDO_INDEX_METHOD_9I", 줄 319에서
ORA-06512: 줄 1에서
==> user_sdo_geom_metadata.SRID 컬럼과 일치해야 한다.
입력된 SRID와 insert 시의 SRID를 동일하게 ..
오라클에서는 8307이 WGS84 이다.
## java.sql.SQLException: ORA-13050: 스페이셜 객체를 구성할 수 없습니다
ORA-06512: "MDSYS.SDO_3GL", 줄 41에서
ORA-06512: "MDSYS.MD2", 줄 726에서
ORA-06512: "MDSYS.SDO_GEOM", 줄 2950에서
ORA-06512: "MDSYS.SDO_GEOM", 줄 2977에서
==>
1. Data 가 유효한지 확인을 하라..
SELECT SDO_GEOM.VALIDATE_GEOMETRY(a.coordinate, 0.005) valid
FROM PMI_apa_1 a
SELECT SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(a.coordinate, 0.005) valid
FROM PMI_apa_1 a ;
2. 저장된 데이터의 Dimension(GTYPE)이 요청 Dimension 이랑 같은지 확인!!!
SELECT a.coordinate FROM PMI_apa_1 a ;
3. 컬럼이 null 인지 확인한다.
null 인경우 공간 인덱스를 사용 할 수 없다.
댓글