更新PRINT_ARGUMENT
SET VALUE =’已启动’
WHERE REQUEST_ID = 1 AND KEYWORD ='{7D066C95-D4D8-441b-AC26-0F4C292A2BE3}’
当我创建一个OracleCommand时,ora-01722也会出现同样的情况.我无法弄清楚为什么.
var cmd = cnx.CreateCommand(); cmd.CommandText = @" UPDATE PRINT_ARGUMENT SET VALUE = :value WHERE REQUEST_ID = :requestID AND KEYWORD = :key";
cmd.Parameters.Add(new OracleParameter(“requestID”,(long)1);
cmd.Parameters.Add(new OracleParameter(“key”,“{7D066C95-D4D8-441b-AC26-0F4C292A2BE3}”);
cmd.Parameters.Add(new OracleParameter(“value”,“Started”);
cnx.open();
try {int affected = cnx.ExecuteNonQuery(); }
终于{cnx.Close(); }
当我在调试器中检查命令时,参数似乎已映射到正确的类型:requestID具有OracleDbType.Int64,键和值都是OracleDbType.Varchar2.参数的值也是正确的.
当你考虑我使用相同的方法在完全相同的列(requestID,keyword,value)上运行其他查询时,这甚至会变得更加奇怪 – 并且它们在没有打嗝的情况下工作.
对于记录,列类型是requestID NUMBER(10,0); key VARCHAR2(30);值VARCHAR2(2000).
据Oracle称,ora-01722’无效数字’表示字符串无法转换为数字.我的字符串值都不是数字,为它们创建的OracleParameters都不是数字,也不是
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。