OracleType varchar不能与sys_refcursor一起使用

时间:2018-06-05 14:16:22

标签: odp.net

我试图通过我的C#代码调用带有输出参数的存储过程作为sys_refcursor。但它总是给我错误说" ORA-01036:非法变量名称/号码"

我在这里写的是我正在使用的C#和SP。

C#代码:

public DataTable ExecuteReport(ReportFilters filterAttribute)
        {
            DataTable dtDetailedReport = new DataTable();
            using (OracleConnection conn = new OracleConnection())
            {
                conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
                OracleCommand cmd = new OracleCommand();
                cmd.Connection =conn;
                cmd.CommandText = "count_emp_by_dept";
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("pin_no", OracleType.VarChar, 200).Value = filterAttribute.PIN;
                cmd.Parameters.Add("pResult ", OracleType.Cursor).Direction = ParameterDirection.Output;
                OracleDataAdapter adap =new OracleDataAdapter(cmd);
                adap.Fill(dtDetailedReport);
                conn.Close();
            }
            return dtDetailedReport;
        }

我正在使用的SP:

create or replace procedure count_emp_by_dept(pin_no Varchar2, pResult out sys_refcursor)
is
begin
  open pResult for 
 select pinname from TOC2_PIN  where pin = pin_no;
end count_emp_by_dept;

我使用.NET framework 2.0和System.Data.OracleClient连接Oracle数据库。

我有什么遗失的吗?

提前致谢。

0 个答案:

没有答案