[ dataBase ] in KIDS 글 쓴 이(By): simbo (해피투게더) 날 짜 (Date): 1999년 6월 14일 월요일 오전 10시 34분 15초 제 목(Title): [Q] JDBC ORACLE상의 에러.. 오라클 8.0.3에서 테이블에 mp3 file을넣으려고 하는데 자꾸 에러가 납니다. 어디에 원인이 있는지 잘 모르겠는데 아시는분들의 답변을 부탁합니다. 테이블 디스크립터는 아래와 같고 SQL> SQL> desc mp3 Name Null? Type ------------------------------- -------- ---- NAME NOT NULL VARCHAR2(40) TYPE VARCHAR2(10) DT DATE CONT LONG RAW 프로그램은 import java.sql.*; import java.io.*; public class Insert { public static void main (String args []) throws ClassNotFoundException, SQLException, IOException { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:!@@@@@$#%^&&%^$##@^%"); File file = new File(args[0]); long fileLength = file.length(); int Length = (int) fileLength; String fileName = file.getName(); InputStream fin = new FileInputStream(file); PreparedStatement pst = conn.prepareStatement("insert into mp3(name,cont) values(?,?)"); pst.setString(1,fileName); pst.setBinaryStream(2,fin,Length); pst.executeUpdate(); fin.close(); conn.close(); } } 아래와 같은 에러가 납니다. [root@cluster2 dobi]# java Insert myall.mp3 java.sql.SQLException: ORA-01401: inserted value too large for column at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:181) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:631) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1221) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:657) at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:770) at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement.java:812) at oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1154) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:11 87) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatemen t.java:94) at Insert.main(Insert.java:26) 제가 테이블 자료타입의 long raw에 대한 자료타입을잘 몰라서그러는건지 아니면 프로그램상의 에러인지 잘 모르겠네요. 고수님들의 답변을부탁드립니다. |