新聞中心
Oracle還是比較常用的,于是我研究了一下Oracle Clob類(lèi)型,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。Oracle Clob類(lèi)型處理解析最近利用NHibernate映射類(lèi)型為Clob字段在插入數(shù)據(jù)時(shí)發(fā)現(xiàn)當(dāng)字符的字節(jié)數(shù)(一個(gè)半角字符一個(gè)字節(jié),一個(gè)全角字符兩個(gè)字節(jié))在 2000-4000之間時(shí)報(bào)錯(cuò)(ORA-01461:僅可以插入LONG列的LONG值賦值)。Oracle Clob類(lèi)型方式1:直接將CLOB的值拼寫(xiě)在SQL語(yǔ)句中。代碼:

成都創(chuàng)新互聯(lián)公司專(zhuān)注于乾安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供乾安營(yíng)銷(xiāo)型網(wǎng)站建設(shè),乾安網(wǎng)站制作、乾安網(wǎng)頁(yè)設(shè)計(jì)、乾安網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造乾安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供乾安網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
- string id = Guid.NewGuid().ToString();
- OracleCommand cmd = Conn.CreateCommand();
- cmd.CommandText = "insert into xx(id,test) values('" + id + "','" + data + "')";
- // data是一個(gè)變量,存儲(chǔ)你要插入的字符串
- cmd.ExecuteNonQuery();
情況分析:當(dāng)data的長(zhǎng)度大于4000時(shí)報(bào)錯(cuò)(ORA-01704:文字字符串過(guò)長(zhǎng)),小于或等于4000時(shí)正常插入。
原因分析:之所以會(huì)出現(xiàn)長(zhǎng)度大于4000時(shí)報(bào)錯(cuò),是因?yàn)镺racle中有SQL語(yǔ)句中兩個(gè)單引號(hào)之間的字符數(shù)不能大于4000的限制。'" + data + "' data在sql語(yǔ)句之間,當(dāng)data的值大于4000個(gè)字節(jié)時(shí)就會(huì)報(bào)錯(cuò)。
解決辦法:這種方式比較棘手,但有更好的方式,下邊會(huì)講到 。
Oracle Clob類(lèi)型方式2:采用參數(shù)形式。代碼:
- string id = Guid.NewGuid().ToString();
- OracleCommand cmd = Conn.CreateCommand();
- cmd.CommandText = "insert into xx(id,test) values('" + id + "','" + data + "')";
- // data是一個(gè)變量,存儲(chǔ)你要插入的字符串
- cmd.ExecuteNonQuery();
情況分析:采用這種方式能夠正常插入。所以推薦用這種方式。
原因分析:無(wú)
解決辦法:無(wú)
【編輯推薦】
- Oracle監(jiān)聽(tīng)器,讓你監(jiān)聽(tīng)想要的東東
- 你是否懂得Oracle.Net協(xié)議棧
- 概論Oracle數(shù)據(jù)庫(kù)優(yōu)化器
- 簡(jiǎn)明扼要介紹Oracle Provider
- 詳談捕獲Oracle SQL語(yǔ)句執(zhí)行計(jì)劃
標(biāo)題名稱(chēng):簡(jiǎn)單描述Oracle Clob類(lèi)型
網(wǎng)站URL:http://www.5511xx.com/article/dhoghis.html


咨詢(xún)
建站咨詢(xún)
