如何从C#运行Oracle功能(vs 2012)

时间:2014-09-21 09:10:02

标签: c# .net oracle

我正在尝试运行我在Oracle中运行的功能,我从未使用过Oracle的sql2008母猪我是新手。

这里是Oracle中我需要调用并获取整数的函数:

create or replace function vb_new_serial return integer is
  Result integer;
begin
  select  vbserial.nextval into result from dual;
  return(Result);
end vb_new_serial;

这个函数没有得到,它只是回归整数。

我试过这个,但我收到错误PLS-00221: 'VB_NEW_SERIAL' is not a procedure or is undefined

  using (System.Data.OracleClient.OracleConnection con = new System.Data.OracleClient.OracleConnection(strConn2))
    {
        con.Open();
        System.Data.OracleClient.OracleCommand cmd = new System.Data.OracleClient.OracleCommand("vb_new_serial");
        cmd.CommandType = System.Data.CommandType.StoredProcedure;
        //System.Data.OracleClient.OracleParameter returnVal = new System.Data.OracleClient.OracleParameter("value", null);
       // cmd.Parameters.Add(returnVal);
        cmd.Connection = con;
        System.Data.OracleClient.OracleDataReader odr = cmd.ExecuteReader();//here i have error
        while (odr.Read())
        {
            Console.WriteLine(odr.GetOracleValue(0));
        }
        Console.ReadLine();
    }

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的第一个定义参数应该是返回值:

cmd.Parameters.Add("Return_Value", OracleDbType.Int32, ParameterDirection.ReturnValue);