程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 簡單描述Oracle Clob類型

簡單描述Oracle Clob類型

編輯:Oracle數據庫基礎

Oracle還是比較常用的,於是我研究了一下Oracle Clob類型,在這裡拿出來和大家分享一下,希望對大家有用。Oracle Clob類型處理解析最近利用NHibernate映射類型為Clob字段在插入數據時發現當字符的字節數(一個半角字符一個字節,一個全角字符兩個字節)在 2000-4000之間時報錯(ORA-01461:僅可以插入LONG列的LONG值賦值)。Oracle Clob類型方式1:直接將CLOB的值拼寫在SQL語句中。代碼:

  1. string id = Guid.NewGuid().ToString();  
  2. OracleCommand cmd = Conn.CreateCommand();  
  3. cmd.CommandText = "insert into xx(id,test) values('" + id + "','" + data + "')";  
  4. // data是一個變量,存儲你要插入的字符串  
  5. cmd.ExecuteNonQuery(); 

情況分析:當data的長度大於4000時報錯(ORA-01704:文字字符串過長),小於或等於4000時正常插入。

原因分析:之所以會出現長度大於4000時報錯,是因為Oracle中有SQL語句中兩個單引號之間的字符數不能大於4000的限制。'" + data + "' data在sql語句之間,當data的值大於4000個字節時就會報錯。

解決辦法:這種方式比較棘手,但有更好的方式,下邊會講到 。

Oracle Clob類型方式2:采用參數形式。代碼:

  1. string id = Guid.NewGuid().ToString();  
  2. OracleCommand cmd = Conn.CreateCommand();  
  3. cmd.CommandText = "insert into xx(id,test) values('" + id + "','" + data + "')";  
  4. // data是一個變量,存儲你要插入的字符串  
  5. cmd.ExecuteNonQuery(); 

情況分析:采用這種方式能夠正常插入。所以推薦用這種方式。

原因分析:無

解決辦法:無

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved