从过程中获取自定义返回值

时间:2016-12-04 13:03:42

标签: c# oracle odp.net

我在ORACLE中有这种类型:

create or replace  type error_record is object(
    error         number(1),
    error_message varchar2(500));

存储过程返回此类型:

function some_func(params....) return error_record;

我正在努力执行此函数的代码并获得返回值。我看到的每个示例都使用OracleDbType.Object,但没有这样的枚举值。

using (OracleConnection con = new OracleConnection(...))
{
    using (OracleCommand cmd = new OracleCommand("some_func", con))
    {
        cmd.CommandType = CommandType.StoredProcedure;

        var pResult = new OracleParameter();
        //pResult.OracleDbType = OracleDbType.Object;
        pResult.UdtTypeName = "error_record";
        pResult.Direction = ParameterDirection.ReturnValue;

        cmd.Parameters.Add(pResult);

        con.Open();
        cmd.ExecuteNonQuery();
        ....
    }
}

0 个答案:

没有答案