Hi~
I wanna call Oracle stored procedure with array as parameters by C#.
I have searched all possible question~
The procedure can be compiled in Oracle,but can't be call from C#.
CREATE OR REPLACE PACKAGE pk
AS
TYPE VAY IS ARRAY(11)OF VARCHAR2(30);
PROCEDURE OrderReport(V_List IN VAY);
END
CREATE OR REPLACE PACKAGE BODY pk AS
<pre lang="sql">PROCEDURE OrderReport(V_List IN VAY) AS
BEGIN
INSERT INTO T020 (A, B,C, D, E, F, G, H, I) VALUES(V_List(0), V_List(1), V_List(2), V_List(3), V_List(4), V_List(5), V_List(6), V_List(7), to_timestamp(V_List(8), 'yyyy-mm-dd hh24:mi:ss.ff3'));
END;
END;
The following codes can't work, the error message were "Invalid parameter"
private static void OrderReport()
{
string[] _List =
{
"A",
"B",
"C",
"D",
"E",
"F",=
"G",
"H",
"102.2",
"0",
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
};
String ConnectionString = ConfigurationManager.ConnectionStrings["ABC"].ConnectionString;
using (OracleConnection conn = new OracleConnection(ConnectionString))
{
conn.Open();
using (OracleCommand cmd = conn.CreateCommand())
{
try
{
cmd.CommandText="PK.ORDERREPORT";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("V_List",OracleDbType.Array);
cmd.Parameters[0].Value = _List;
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.WriteLine("1");
Console.ReadLine();
}
}
}