자바를 이용하여 랜덤으로 데이터를 오라클 테이블에 삽입하는 과정에서 에러가 발생합니다. 0 4 3,079

by whitemind [2011.05.25 22:43:01]


util.zip (1,572Bytes)


이름   널?   유형
----------------------------------------- -------- -------------
TRANSACTION_ID     NOT NULL NUMBER
TYPE   NOT NULL CHAR(1)
CUSTOMER_ID    NOT NULL NUMBER
SUPPLIER_ID    NOT NULL NUMBER
ORDER_ID   NOT NULL NUMBER
AMOUNT     NOT NULL NUMBER(10,2)
DTE    NOT NULL DATE
DRCOA#     NOT NULL CHAR(5)
CRCOA#     NOT NULL CHAR(5)
 
이러한 테이블이 있을 때 다음 자바 소스를 이용하여 랜덤으로 데이터를 삽입하려고 하는데 자꾸
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
 at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:744)
 at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
 at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:965)
 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1169)
 at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3338)
 at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3422)
 at com.potato.dbconn.DBConn.insertData(DBConn.java:71)
 at com.potato.dbconn.DBConn.main(DBConn.java:107)
java.sql.SQLException: ORA-01841: 년은 영이 아닌 -4713 과 +4713 사이의 값으로 지정해야 합니다.
 
이런식의 에러 메시지가 발생합니다. 자바 소스 파일을 첨부하였으니 확인해주시고 잘못된 부분 지적 부탁드립니다 ㅜㅜ

by 마농 [2011.05.26 08:53:21]
ORA-01841: 년은 영이 아닌 -4713 과 +4713 사이의 값으로 지정해야 합니다.

에러메시지에 상세한 설명이 나와 있네요.
dte 컬럼은 date 형입니다. 날짜를 입력해야 합니다.

by 강민철 [2011.05.26 13:43:11]
to_date(s_date,'yyyymmdd') 요렇게 넣으면 될런지요?

by 마농 [2011.05.26 15:09:47]
네. 위와 같이 넣으시면 됩니다.
단, s_date 의 값이 정확한 날짜값이어야 하겠죠.
'20110526' ==> 정상
'20110229' ==> 오류

by whitemind [2011.05.26 20:08:08]
강민철님 to_date(s_date,'yyyymmdd') 이부분을 어디에다

자바 코드중 어디에 삽입을 해줘야하는건지 모르겠습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입