国产探花免费观看_亚洲丰满少妇自慰呻吟_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同樣也可以通過這樣的方法來進行添加字符串,但是添加二進制文件的話,就只能用這種方式來添加了,因為需要讀取文件的二進制流內容。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇文区| 奇台县| 垦利县| 怀宁县| 化隆| 枝江市| 莒南县| 阜新| 永平县| 大冶市| 云南省| 拜泉县| 五大连池市| 温泉县| 桃园市| 乌鲁木齐县| 贵州省| 渭源县| 宝鸡市| 冷水江市| 浠水县| 汨罗市| 定兴县| 陇南市| 宜阳县| 浮山县| 新野县| 凤庆县| 周宁县| 大厂| 武功县| 阳西县| 新乡市| 杭锦后旗| 嘉峪关市| 佛冈县| 中宁县| 台南县| 葵青区| 昌图县| 冷水江市|