应该不会呀,你是怎么插入的?下面这段代码我试过的,可以插入,你看看String file1 = "PEiffelTower.jpg";
String file2 = "EiffelTower.jpg"; try {
          // to connect to the database
  Connection conn = 
    getConnected(drivername,dbstring, username,password);   //  create a preparedStatement with 
  //   ?  represents the lobs to be inserted
  PreparedStatement stmt = conn.prepareStatement(
              "insert into pictures values (20,'Eiffel Tower','Paris',?,? )" );   // Set the first parameter 
  File file = new File( file1 );
          stmt.setBinaryStream(1,new FileInputStream(file),(int)file.length());   // set the second parameter
  file = new File(file2);
  stmt.setBinaryStream(2,new FileInputStream(file),(int)file.length());   // execute the insert statement
  stmt.executeUpdate();
  System.out.println( "the execution succeeds");   conn.close();
} catch( Exception ex ) { 
    System.out.println( ex.getMessage());
}

解决方案 »

  1.   

    preparedStatement 很方便啊。
      

  2.   

    插入不成功一般是sql语句的语法问题
      

  3.   

    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.util.*"%>
    <%@ page import="oracle.sql.*"%>
    <%@ page import="java.sql.*"%>
    <%@ page import="oracle.jdbc.driver.* "%>
    <%
       OracleConnection conn = (OracleConnection)docConn.getDirectConn();
       OraclePreparedStatement stmt = null;
       ResultSet rs = null;
       SmartUpload mySmartUpload = new SmartUpload();
    mySmartUpload.initialize(pageContext);
    mySmartUpload.upload();

    String loginName = ParamUtils.getSession(session,"loginName"); //当前用户ID
        String ModelName = mySmartUpload.getRequest().getParameter("ModelName");
    String ModelType = mySmartUpload.getRequest().getParameter("ModelType");
    String ModelMemo = mySmartUpload.getRequest().getParameter("ModelMemo");
    boolean isOK = false;
    String strFileCode = "";
    java.util.Date datenew = new java.util.Date();
        long gt = datenew.getTime();
        Long ggt = new Long(gt);
        strFileCode = ggt.toString();
    strFileCode = "wordtemplate" + strFileCode; try {
    if(!mySmartUpload.getFiles().getFile(0).isMissing()) {
    byte PublicImageByte[] = new byte[mySmartUpload.getFiles().getFile(0).getSize()];
    PublicImageByte = mySmartUpload.getFiles().getFile(0).getBytesOfImage();
    String mysql = "insert into filelist (FileName,FileSize,FileType,UserName,ModelType,ModelMemo,ModelName,Descript,ISMODEL,FileDate,FileBody) values (?,?,?,?,?,?,?,1,1,TO_CHAR(SYSDATE,'YYYY-MM-DD,HH24:MI:SS'),EMPTY_BLOB() )";
    stmt = (OraclePreparedStatement)conn.prepareStatement(mysql);
    stmt.setString(1, strFileCode);
    stmt.setInt(2, mySmartUpload.getFiles().getFile(0).getSize());
    stmt.setString(3, mySmartUpload.getFiles().getFile(0).getFileExt());
    stmt.setString(4, loginName);
    stmt.setString(5, ModelType);
    stmt.setString(6, ModelMemo);
    stmt.setString(7, ModelName);
    stmt.executeUpdate();
    stmt.clearParameters();

    mysql = "select FileBody from filelist where FileName=? for update";
    conn.setAutoCommit(false);
    stmt = (OraclePreparedStatement)conn.prepareStatement(mysql);
    stmt.setString(1, strFileCode);
    rs = stmt.executeQuery();
    oracle.sql.BLOB fileblob = null;
    if(rs.next()) {
    conn.setAutoCommit(false);
    fileblob = (oracle.sql.BLOB) rs.getBlob(1);
    fileblob.putBytes(1, PublicImageByte);
    conn.setAutoCommit(true);
    }

    conn.commit();
    rs.close();
    conn.close();
    isOK = true;
    }
    } catch (Exception er) {
    System.out.println("========================== error in modeladdsave: " + er.getMessage()) ;
    conn.close();
    } finally {
       conn.close();
    }
    if(isOK) {
    %>
    <script language="javascript">
    alert("上传成功!");
    window.opener.location="model.jsp";
    window.close();
    </script>
    <%
    } else {
    %>
    <script language="javascript">
    alert("上传失败!");
    history.back();
    </script>
    <%
    }
    %>
    </body>
      

  4.   

    取是下面的一段程序:
    public int   getBLOBfromORS(OracleResultSet ors,String outFileName)
      {
        int CountPerRead = 8192;
        byte[] temp = new byte[CountPerRead];
        int ret = 0;
        try
        {
          if (ors.next())
          {
            oracle.sql.BLOB bb = ors.getBLOB(1);
            ret = (int)bb.length();
            File myFile = new File(outFileName);
            myFile.createNewFile();
            DataOutputStream myStream  = new DataOutputStream(new FileOutputStream(myFile));
            int blockCount = ret/CountPerRead;
            int blockremain = ret%CountPerRead;
            for (int i=0;i<blockCount;i++)
            {
              temp = bb.getBytes(1+CountPerRead*i,CountPerRead);
              myStream.write(temp);
            }
            temp = bb.getBytes(1+CountPerRead*blockCount,blockremain);
            myStream.write(temp,0,blockremain);
            myStream.flush();
            myStream.close();
          }
          return ret;
        }
        catch(Exception e)
        {
          System.out.println("getBLOBfromORS error!");
          return 0;
        }
      }
    >