巧妙解決Oracle NClob讀寫問題(經(jīng)驗分享)
最近一個新項目中,嘗試在 Oracle 數(shù)據(jù)庫中使用 NCLOB 來保存大的 xml 字符串。
在代碼自動生成工具(通過 JDBC 驅(qū)動程序,讀數(shù)據(jù)庫表結(jié)構(gòu),自動生成對應(yīng)的 java 代碼,包含增加、刪除、修改、分頁查詢、根據(jù)主鍵查找等前臺 html/js、后臺代碼 java),將 NCLOB 字段映射到 String 類型。
運行代碼,無報錯。使用 SQuirreL SQL 客戶端查看數(shù)據(jù),覺察數(shù)據(jù)未保存成功。
網(wǎng)上搜一通,有提到用 SetBigStringTryClob 的數(shù)據(jù)庫連接額外屬性的。總覺得好傻。也有提到用 setStringForClob 方法的,也比較笨。
最后在 Oracle 官網(wǎng)上,找到一個更好的辦法:
升級 Oracle JDBC 驅(qū)動程序,直接用 java JDBC 標(biāo)準(zhǔn)的 setString 函數(shù),保存成功!
對應(yīng)網(wǎng)址:
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.
...
----------------------------
以上這篇巧妙解決Oracle NClob讀寫問題(經(jīng)驗分享)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
oracle 監(jiān)聽 lsnrctl 命令 (推薦)
這篇文章主要介紹了oracle 監(jiān)聽 lsnrctl 命令 ,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03CMD操作oracle數(shù)據(jù)導(dǎo)庫過程圖解
這篇文章主要介紹了CMD操作oracle數(shù)據(jù)導(dǎo)庫過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07Linux中Oracle啟動偵聽報錯TNS:permission denied的解決方法
這篇文章主要介紹了Linux中Oracle啟動偵聽時報錯TNS:permission denied的解決方法,文中給出了詳細(xì)的解決方法,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-02-02oracle 合并查詢 事務(wù) sql函數(shù)小知識學(xué)習(xí)
oracle 合并查詢 事務(wù) sql函數(shù)小知識學(xué)習(xí),需要的朋友可以參考下2012-12-12Oracle數(shù)據(jù)庫scott用戶創(chuàng)建view視圖權(quán)限的操作方法
這篇文章主要介紹了Oracle數(shù)據(jù)庫scott用戶創(chuàng)建view視圖權(quán)限的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01