我正在尝试使用
的存储过程variable data refcursor;
execute MyPkg(to_date('2010-08-11','yyyy-MM-dd'), TEXT_ARRAY('tempa','tempb'), :data);
其中TEXT_ARRAY
是TABLE OF varchar2(255)
C#Code Snippet:
var cmd = new OracleCommand("BEGIN MyPkg(:Param1, :Param2, :Param3); END;", con);
var param1 = cmd.Parameters.Add("Param1", OracleDbType.Date);
var param2 = cmd.Parameters.Add("Param2", OracleDbType.Varchar2);
var param3 = cmd.Parameters.Add("Param3", OracleDbType.RefCursor);
param1.Direction = ParameterDirection.Input;
param2.Direction = ParameterDirection.Input;
param3.Direction = ParameterDirection.Output;
param1.Value = DateTime.Now;
param2.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
param2.Value = new[] { "tempa", “tempb”};
param2.Size = 2;
param2.ArrayBindSize = new[] { 20, 20 };
cmd.ExecuteNonQuery();
我收到错误:
类型' Oracle.ManagedDataAccess.Client.OracleException'的例外情况 发生在Oracle.ManagedDataAccess.dll中但未在用户中处理 代码附加信息:外部组件已抛出 例外。 - ORA-06550:第1行第7列:\ nPLS-00306:错误号码 或调用' MyPkg '\ nORA-06550的参数类型:第1行,列 7:\ nPL / SQL:语句被忽略"
有关如何解决此问题的任何线索?
答案 0 :(得分:0)
对于param2,您可以使用OracleDbType.Array而不是varchar2。