使用C#执行Oracle功能

时间:2016-07-06 20:32:16

标签: c# oracle

我正在尝试执行一个返回引用游标的Oracle函数,但没有任何工作。我尝试了一些stackoverflow帖子提出的一些解决方案。以下是我的尝试:

功能

FUNCTION market.get_countries_list RETURN REF CURSOR 
(
  COUNTRY_CODE NUMBER(3), 
  COUNTRY_NAME VARCHAR2(50)
);

C#代码:

System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection();
conn.ConnectionString = "...";
conn.Open();
System.Data.OracleClient.OracleCommand cmd = new System.Data.OracleClient.OracleCommand("MARKET.GET_COUNTRIES_LIST", conn);
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.Add(new System.Data.OracleClient.OracleParameter("ref_cur", System.Data.OracleClient.OracleType.Cursor)).Direction = System.Data.ParameterDirection.Output;
System.Data.OracleClient.OracleDataReader rdr = cmd.ExecuteReader();
while (rdr.Read()) {
  Label1.Text = rdr.GetOracleNumber(0).ToString();
  rdr.Close();
}

以上代码产生以下错误:

ORA-01036: illegal variable name/number

我错过了什么?

1 个答案:

答案 0 :(得分:0)

这篇文章解决了我的问题:How to return a RefCursor from Oracle function?

我最终使用了Oracle数据访问