Help-Output Parameter of type table - c#
Posted: Mon 04 Jan 2016 15:38
I am trying to return an array of ids from an Oracle stored procedure to my c# code. I am getting the error "reference to uninitialized collection". Here is the simple PL/SQL proc :
create type mmm_type is table of number;
create or replace procedure test_app.mmm_test01 (id IN number, O_tab out mmm_type)
is
begin
for x in 1..1000 loop
O_tab(x) := to_char(x);
end loop;
end;
And here is my c# code to test:
using (OracleConnection connection = new OracleConnection(_connectionString))
{
using (OracleCommand cmd = new OracleCommand("mmm_test01", CommandType.StoredProcedure))
{
cmd.Connection = connection;
connection.Open();
OracleParameter inParam = cmd.Parameters.Add("id", OracleDbType.Int16, ParameterDirection.Input);
OracleParameter returnParam = cmd.Parameters.Add("O_tab", OracleDbType.Table, ParameterDirection.Output);
returnParam.ObjectTypeName = "mmm_type";
OracleDataReader dr = cmd.ExecuteReader(); //"reference to uninitialized collection" error here
I am new to Oracle and Devart. Any advice/input is appreciated. Thanks!
create type mmm_type is table of number;
create or replace procedure test_app.mmm_test01 (id IN number, O_tab out mmm_type)
is
begin
for x in 1..1000 loop
O_tab(x) := to_char(x);
end loop;
end;
And here is my c# code to test:
using (OracleConnection connection = new OracleConnection(_connectionString))
{
using (OracleCommand cmd = new OracleCommand("mmm_test01", CommandType.StoredProcedure))
{
cmd.Connection = connection;
connection.Open();
OracleParameter inParam = cmd.Parameters.Add("id", OracleDbType.Int16, ParameterDirection.Input);
OracleParameter returnParam = cmd.Parameters.Add("O_tab", OracleDbType.Table, ParameterDirection.Output);
returnParam.ObjectTypeName = "mmm_type";
OracleDataReader dr = cmd.ExecuteReader(); //"reference to uninitialized collection" error here
I am new to Oracle and Devart. Any advice/input is appreciated. Thanks!