在實際項目中使用Oracle時出現(xiàn)的一些問題,通過變通的方案將問題避免了,特撰此文,以備忘用!
1.ORA-01403:NO DATA FOUND-未找到數(shù)據(jù)
a.加一個exception異常處理
EXCEPTION WHEN NO_DATA_FOUND THEN ...
b.先用count計算一下是否大于0,即是否有值,這樣就算沒有值也會返回0,而不是NULL
-
SELECT COUNT(*) INTO FIELD FROM TABLE WHERE ...
2.ORA-01704:STRING LITERAL TOO LONG-文字字符串過長
直接用類似INSERT INTO TABLE (ID,CONTEXT) VALUES('1','...')語句向Oracle插入長字節(jié)的字段CONTEXT時會出現(xiàn)此錯誤信息
a.在程序中可以利用參數(shù)來實現(xiàn)
C#代碼
1 OracleConnection ocon = new OracleConnection();
2 OracleCommand ocom = new OracleCommand(sql, ocon);
3 ocom.Connection.Open();
4 ocom.Parameters.Add(":Value", OracleType.Blob);
5 ocom.Parameters[":Value"].Value = longvalue;
6 ocom.ExecuteNonQuery();
b.利用存儲過程來實現(xiàn)相對比較簡單,只要將參數(shù)傳入即可
DECLARE
v_context CLOB :='long context';
BEGIN
INSERT INTO TABLE (ID,CONTEXT) VALUES ('1',:v_context);
END; 本文出自:億恩科技【www.laynepeng.cn】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]
|