Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
JavaRanch.com/granny.jsp
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Insert file to Oracle's BLOB

 
kwwong wong
Ranch Hand
Posts: 56
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I using the following codes to insert the file in RAW LONG Column and it works O.K. But when I change the column type to BLOB, it throws the exception.

File file = new File (args[0]);
InputStream inStream = new FileInputStream (file);
PreparedStatement psmt = conn.prepareStatement
("INSERT INTO vp_doc (name,doc) VALUES (?, ?)");
psmt.setString (1, args[0]);
psmt.setBinaryStream (2, inStream,(int)file.length () );
psmt.execute ();

Below are the exception :

Exception in thread "main" java.sql.SQLException: No more data to read from sock
et
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1160)
at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:963)
at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:893)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:369)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:109
3)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.ja
va:2047)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.jav
a:1940)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:2709)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
edStatement.java:589)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat
ement.java:656)
at UploadFile.main(UploadFile.java:28)

Who can point out my mistake ?
 
Sujatha Ranganathan
Greenhorn
Posts: 12
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You may want to have a look at the LOB Datatype Sample on OTN
Sujatha.
Oracle Technology NetworkOracle Technology Network
 
kwwong wong
Ranch Hand
Posts: 56
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The sample in OTN is an client application and using SELECT FOR UPDATE. Can I using this sample in Web Application ? I remember that SELECT FOR UPDATE cannot use in WEB application, is it true ?
Thanks
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic