我在这里使用.net 4.0 C#,IBatisNet和CSLA框架的企业项目。
在程序包中调用insert proc时,项目作业之一因ORA-01084: invalid argument in OCI call
失败。返回的错误消息充其量是神秘的,存储的proc具有83个输入参数,这些输入参数不受名称限制(由于IBatis)。
奇怪的是:我有一组记录,比如Order
和OrderItems
。 Order
有28个订单商品。作业必须通过创建另一个Order
并复制所有OrderItems
记录来续订订单。新订单商品通过ParentOrderItemId
字段引用旧订单商品,这也是要续签Orders
的选择标准。
当我第一次运行它时,该过程在OrderItemId: 12345
上报错,出现ORA-01084
错误。但是,当我下次重新运行它时,它将成功处理OrderItemId: 12345
。然后炸毁OrderItemId: 12444
。然后,我重新运行,它可以正确处理OrderItemId: 12444
,依此类推。
我已经传递了DbParameters的日志,它们在两种情况下都是相同的。
我已经有了oci客户跟踪,但是它也没有用。
我已经在数据库层上设置了日志记录,到目前为止,它什么也没有给我。
任何想法如何跟踪这些类型的错误?
最佳答案
我收到了同样的错误消息。就我而言,这是因为我正在将一个空字符串传递给CLOB列。通常,我会传递一个大型XML文档,但有时没有文档。现在,我检查空字符串并输入“empty”。