【问题标题】:TABLE OF NUMBERS Oracle stored procedure Parameter, How to pass it from C#数字表 Oracle 存储过程参数,如何从 C# 传递它
【发布时间】:2013-12-02 22:48:31
【问题描述】:

我正在寻找一种将参数类型“TABLE OF NUMBER”从 C# 传递给 ORACLE SP 的方法。我正在使用“Oracle.DataAccess”。我尝试使用 UDT 方法,但它不起作用

Oracle.DataAccess.Client.OracleParameter param1 = new Oracle.DataAccess.Client.OracleParameter("IN_ACCT_ID_ARR", Oracle.DataAccess.Client.OracleDbType.Ref, ParameterDirection.Input);
param1.CollectionType = Oracle.DataAccess.Client.OracleCollectionType.PLSQLAssociativeArray;
//  param1.UdtTypeName = "num_list";
param1.Value = acctId;
cmd.Parameters.Add(param1);

【问题讨论】:

  • 我收到无效绑定错误。
  • 不知何故,以下解决方案正在工作......但我没有提供参数名称。 ` OracleParameter inputParameter = new OracleParameter(); inputParameter.OracleDbType = OracleDbType.Int32; inputParameter.Direction = ParameterDirection.Input; inputParameter.CollectionType = OracleCollectionType.PLSQLAssociativeArray; inputParameter.Value = acctId.ToArray();`
  • 那么它现在工作了吗?

标签: c# oracle stored-procedures


【解决方案1】:

结果如下..

   cmd.CommandType = CommandType.StoredProcedure;

            OracleParameter inputParameter = new OracleParameter();
            inputParameter.OracleDbType = OracleDbType.Int32;
            inputParameter.Direction = ParameterDirection.Input;
            inputParameter.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
            inputParameter.Value = acctId.ToArray();

            cmd.Parameters.Add(inputParameter);

【讨论】:

    猜你喜欢
    • 2012-09-24
    • 2021-04-02
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    相关资源
    最近更新 更多