国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle 插入超4000字節的CLOB字段的處理方法

2024-08-29 13:56:29
字體:
來源:轉載
供稿:網友
在通過拼組sql語句來實現數據插入的應用中,我們很有可能會遇到需要插入大型數據的情況,例如,在oracle中需要插入字節數超過4000的字段內容時,我們如果通過簡單的拼組sql語句來實現插入,顯然就會出現問題,而在sql server中卻沒有這個限制,個人嘗試了26w個字符的sql語句在sql server2005中執行,依舊可以插入數據,但是在oracle中插入超過4000個字符的內容則會報異常。

下面就此問題的解決辦法,做一下小結:
我們可以通過創建單獨的OracleCommand來進行指定的插入,即可獲得成功,這里僅介紹插入clob類型的數據,blob與此類似,這里就不介紹了,下面介紹兩種辦法,均已驗證:
第一種方法:使用組件System.Data.OracleClient的方法來實現,比較簡單一些:

復制代碼 代碼如下:


string conn = "Data Source=客戶端指定連接字符串;User ID=user;Password=mima";
OracleConnection Con = new System.Data.OracleClient.OracleConnection(conn);
Con.Open();
string cmdText = "INSERT INTO GWEXPOINTLIST(id, name, content) VALUES(1, ‘name', :clob)";
OracleCommand cmd = new OracleCommand(cmdText, Con);
OracleParameter op = new OracleParameter("clob", OracleType.Clob);
op.Value = "超過4000字符的超常字符串";
cmd.Parameters.Add(op);
cmd.ExecuteNonQuery();
Con.Close();


第二種方法:使用組件Oracle.DataAccess的方法實現,可能用法稍微老了一些,但依然有效:

復制代碼 代碼如下:


IDbCommand m_objCmd = new OracleCommand();
m_objCmd.CommandText = "INSERT INTO GWEXPOINTLIST(id, name, content) VALUES(1, ‘name', :clob)";
IDataParameterCollection m_arrParamter = m_objCmd.Parameters;
OracleClob clob = new OracleClob((OracleConnection)m_objConn);
OracleParameter objParam = new OracleParameter(‘clob', OracleDbType.Clob, clob, ParameterDirection.Input);

objParam.Value = "超過4000字符的超常字符串";
m_arrParamter.Insert(0, objParam);

int nRet = m_objCmd.ExecuteNonQuery();


當然,sql server同樣也可以通過這樣的方法來進行添加字符串,但是添加二進制文件的話,就只能用這種方式來添加了,因為需要讀取文件的二進制流內容。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 元氏县| 洞口县| 乌海市| 张家界市| 灵川县| 德令哈市| 四平市| 当雄县| 驻马店市| 高州市| 千阳县| 新乡县| 昭觉县| 溆浦县| 库车县| 龙游县| 贵南县| 大方县| 万山特区| 读书| 陵川县| 井冈山市| 曲阜市| 莱阳市| 石狮市| 惠安县| 赫章县| 沁阳市| 秦皇岛市| 广安市| 嘉荫县| 精河县| 东乡| 清水县| 华容县| 炎陵县| 年辖:市辖区| 沧源| 五河县| 北辰区| 镇宁|