Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing an array from .Net application to Oracle stored procedure

I need to pass an array from C#.net application to oracle stored procedure. Can anyone please let me know how to go about it? Also, which OracleType type do I use in C# when passing input parameter to stored procedure?

FYI, am using System.Data.OracleClient in my C# app.

Thanks.

like image 258
Jimmy Avatar asked Oct 27 '10 10:10

Jimmy


2 Answers

Jimmy, the System.Data.OracleClient does not support arrays.
http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/57a59fba-09e2-46cb-a072-6706b3ec5131

Depending on your need, you will either need to implement this via nested table types (via UDTs or assoc. arrays) using the ODP.net clients. This is probably a good direction to go, esp. since .net 4.0 has deprecated System.Data.OracleClient.

But if you are stuck with the System.Data.OracleClient and you are really just trying to do a variable in-list, you can do this by passing in a string and following some of these suggestions: http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:210612357425

hope this helps

like image 85
Harrison Avatar answered Oct 07 '22 16:10

Harrison


You should use DB-defined nested table types to pass an array to PL/SQL. Take a look at this nice tutorial, it might help you.

like image 37
andr Avatar answered Oct 07 '22 17:10

andr