2013-03-06 114 views
0


當我嘗試使用下面的代碼,上傳圖片,我收到以下錯誤:值java.sql.SQLException:ORA-01460:未實現或不合理的轉換要求錯誤而上傳圖像數據庫

File image = new File("D:/"+fileName);  
    preparedStatement = connection.prepareStatement(query); 
    preparedStatement.setString(1,"Ayush"); 
    fis = new FileInputStream(image); 
    preparedStatement.setBinaryStream(2, (InputStream)fis, (int)(image.length())); 

    int s = preparedStatement.executeUpdate(); 
    if(s>0) { 
     System.out.println("Uploaded successfully !"); 
     flag = true; 
    } 
    else { 
     System.out.println("unsucessfull to upload image."); 
     flag = false; 
    } 

請幫我一把。

DB腳本: CREATE TABLE ESTMT_SAVE_IMAGE ( NAME VARCHAR2(50), IMAGE BLOB )

+0

對於一些用戶來說,這是通過獲取最新的JDBC驅動程序解決。 查看鏈接: http://forums.oracle.com/forums/thread.jspa?messageID=1808509和 http://forum.java.sun.com/thread.jspa?threadID=5164500&tstart=255 – Freak 2013-03-06 07:10:39

回答

0

它的第一個原因是不兼容的轉換,但看到你的數據庫腳本後,我以爲你是不是在腳本中進行任何轉換。
還有其他報道的ORA-01460的原因以及:

不兼容字符集可能導致ORA-01460

使用SQL開發,試圖爲一個字符串傳遞給一個綁定變量超過4000個字節值可以導致ORA-01460

隨着ODP,用戶從客戶端10.2和移動10.2 ODP到11.1客戶端和11.1.0.6.10 ODP報告一個ORA-01460錯誤。這是一個應該通過將ODP修補到最新版本來解決的錯誤。

Please see this

+0

是你是對的。我的應用程序已成功將小於4KB的圖像插入數據庫,但如果我想存儲更大尺寸的圖像,該怎麼辦? – 2013-03-06 09:55:40

+0

因爲我不是很專業:)但我認爲你需要存儲的是一個二進制數據。 – Freak 2013-03-06 10:13:10

+0

請參閱http://stackoverflow.com/questions/10176754/what-is-the-syntax-for-increasing-the-size-of-a-blob-datatype-in​​-oracle和http://docs.oracle .com/cd/A91202_01/901_doc/appdev.901/a88879/adl06fa8.htm我該死的確定它會幫助你:) – Freak 2013-03-06 10:17:27