我在这里使用.net 4.0 C#,IBatisNet和CSLA框架的企业项目。

在程序包中调用insert proc时,项目作业之一因ORA-01084: invalid argument in OCI call失败。返回的错误消息充其量是神秘的,存储的proc具有83个输入参数,这些输入参数不受名称限制(由于IBatis)。

奇怪的是:我有一组记录,比如OrderOrderItemsOrder有28个订单商品。作业必须通过创建另一个Order并复制所有OrderItems记录来续订订单。新订单商品通过ParentOrderItemId字段引用旧订单商品,这也是要续签Orders的选择标准。

当我第一次运行它时,该过程在OrderItemId: 12345上报错,出现ORA-01084错误。但是,当我下次重新运行它时,它将成功处理OrderItemId: 12345。然后炸毁OrderItemId: 12444。然后,我重新运行,它可以正确处理OrderItemId: 12444,依此类推。

我已经传递了DbParameters的日志,它们在两种情况下都是相同的。

我已经有了oci客户跟踪,但是它也没有用。

我已经在数据库层上设置了日志记录,到目前为止,它什么也没有给我。

任何想法如何跟踪这些类型的错误?

最佳答案

我收到了同样的错误消息。就我而言,这是因为我正在将一个空字符串传递给CLOB列。通常,我会传递一个大型XML文档,但有时没有文档。现在,我检查空字符串并输入“empty”。

10-06 05:45