我们最近升级了一个我们维护使用Oracle 11g的应用程序(.NET 2.0)。该应用程序使用MS Enterprise Library 2.0。我们发现当调用database.ExecuteNonQuery(Oracle.DataAccess.Client.OracleCommand)方法时,它会在存储过程期望参数作为数字但收到字符串时发生爆炸。这在升级之前没有发生。如果我将参数转换为Int,我不会收到错误。有没有人遇到过这个问题?升级过程中可能遗漏了什么?无论我们是打11g数据库还是10g数据库,都会出现问题。
如果这个问题含糊不清,我道歉。
感谢您的帮助。
编辑:我忽略了提到调用ExecuteDataReader时不会发生同样的问题(处理数据类型的隐式转换)。
答案 0 :(得分:2)
您确实应该更改代码,以便将正确的数据类型传递给存储过程。
听起来他们最终会强制执行此操作。