標籤:增加 欄位 big logs 驅動 資料庫連接 驅動程式 方法 cti
最近一個新項目中,嘗試在 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 BLOB, CLOB, and NCLOB target columns.
...
The SetBigStringTryClob connection property of Oracle Database 10g Release 1 (10.1) is no longer used or needed.
...
----------------------------
轉寄請註明出處。當心我晚上變大灰狼來摸你肚子喲。我是 jacklondon , at , cnblogs.com.
編程經驗點滴----巧妙解決 Oracle NClob 讀寫問題