Oracle Error Workaround

2014-11-24 17:45:24 · 作者: · 浏览: 1

1.ORA-01403:NO DATA FOUND-未找到数据


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插入长字节的字段CONTEXT时会出现此错误信息


a.在程序中可以利用参数来实现


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.利用存储过程来实现相对比较简单,只要将参数传入即可


DECLARE
v_context CLOB :='long context';
BEGIN
INSERT INTO TABLE (ID,CONTEXT) VALUES ('1',:v_context);
END;