巧妙解決Oracle NClob讀寫問題(經驗分享)
最近一個新專案中,嘗試在 Oracle 資料庫中使用 NCLOB 來儲存大的 xml 字串。
在程式碼自動生成工具(通過 JDBC 驅動程式,讀資料庫表結構,自動生成對應的 java 程式碼,包含增加、刪除、修改、分頁查詢、根據主鍵查詢等前臺 html/js、後臺程式碼 java),將 NCLOB 欄位對映到 String 型別。
執行程式碼,無報錯。使用 SQuirreL SQL 客戶端檢視資料,覺察資料未儲存成功。
網上搜一通,有提到用 SetBigStringTryClob 的資料庫連線額外屬性的。總覺得好傻。也有提到用 setStringForClob 方法的,也比較笨。
最後在 Oracle 官網上,找到一個更好的辦法:
升級 Oracle JDBC 驅動程式,直接用 java JDBC 標準的 setString 函式,儲存成功!
對應網址:
http://docs.oracle.com/cd/E11882_01/java.112/e16548/oralob.htm#JJDBC28534
裡面提到:
In Oracle Database 11g release 2 (11.2),the setBytes,setBinaryStream,setString,setCharacterStream,and setAsciiStream methods of PreparedStatement are extended to enhance the ability to work with
...
The SetBigStringTryClob connection property of Oracle Database 10g Release 1 (10.1) is no longer used or needed.
...
----------------------------
以上這篇巧妙解決Oracle NClob讀寫問題(經驗分享)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。