dataBase

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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에 대한 자료타입을잘 몰라서그러는건지 아니면

프로그램상의 에러인지 잘 모르겠네요.

고수님들의 답변을부탁드립니다.

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.