简体   繁体   English

如何从C#运行Oracle函数(vs 2012)

[英]How to run Oracle function from C# (vs 2012)

I am trying to run function that i have in Oracle,i never worked with Oracle only with sql2008 sow i am new at this. 我试图运行我在Oracle中拥有的功能,但我从未与Oracle一起使用sql2008,所以我是新来的。

Here the function in Oracle that i need to call and get back integer: 这里我需要调用并返回整数的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;

This function dont get nothink it just retuns me integer. 这个函数不会引起误解,它只是使我恢复整数。

I tried this ,but i getting error PLS-00221: 'VB_NEW_SERIAL' is not a procedure or is undefined : 我尝试了此操作,但出现错误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();
    }

What i am doing wrong? 我做错了什么?

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM