Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Chasing up "ORA-01084: invalid argument in OCI call"

Tags:

c#

.net

oracle

I've got here enterprise project with .net 4.0 c#, IBatisNet and CSLA framework.

One of project jobs is failing with ORA-01084: invalid argument in OCI call when calling insert proc in a package. Error message returned is cryptic at best, the stored proc has 83 input parameters which aren't bound by name (thanks to IBatis).

What is curious: I've got a set of records let's say Order and OrderItems. Order has 28 order items. The job has to renew the order by creating another Order and copying all OrderItems records. New order items are referencing the old order items by ParentOrderItemId field, which is also a selection criteria for Orders due to be renewed.

When I run it first time the process blows on OrderItemId: 12345 with ORA-01084 error. But when I rerun it next time, it successfully process OrderItemId: 12345. And then blows up on OrderItemId: 12444. I then rerun and it processes OrderItemId: 12444 correctly and so on and so forth.

I've got logs of DbParameters passed in they are the same in both cases.

I've got oci client trace, but it's not useful either.

I've setup logging on a database layer, and so far it's giving me nothing.

Any ideas how to trace those type of errors?

like image 455
b0rg Avatar asked Oct 09 '22 13:10

b0rg


1 Answers

I was receiving this same error message. In my case it was because I was passing an empty string to a CLOB column. Normally I would pass a large XML document but sometimes there was no document. Now, I check for empty string and write "empty".

like image 82
user3498708 Avatar answered Oct 13 '22 11:10

user3498708