我试图通过我的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数据库。
我有什么遗失的吗?
提前致谢。