调用ORACLE 10g 存储过程错误 错误ORA-06550: 第 1 行, 第 7 列: PLS-00306: 调用 'F_GET_BILLNO' 时参数个
lfqsy 2015-06-12 02:14:52 c# webservice 调用存储过程错误:
错误ORA-06550: 第 1 行, 第 7 列: PLS-00306: 调用 'F_GET_BILLNO' 时参数个数或类型错误 ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored
数据库里面测试存储过程是OK的
create or replace function f_get_billno(andeptcode in varchar2,
anbillid in varchar2)
return varchar2 is
ls_prefix sys_bill_type.prefix%type;
ls_today sys_bill_type.today%type;
ls_now sys_bill_type.today%type;
ll_no sys_bill_type.seq%type;
ls_billno varchar2(20);
ls_company nvarchar2(10);
PRAGMA AUTONOMOUS_TRANSACTION; --?????
。。。
ASMX代码:
<add name="ConnectionString" connectionString="Provider=OraOLEDB.Oracle;Server=**;Data Source=**;User Id=**;Password=**;"/>
如上连接字符串增删改查都OK;
try{
using (OleDbConnection con = new OleDbConnection(ConnectionStr))
{
con.Open();
OleDbCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "f_get_billno";
cmd.Parameters.Clear();
cmd.Parameters.Add("ancompany", OleDbType.VarChar, 20).Direction = ParameterDirection.Input;//指明传入的参数是输入给oracle存储过程用的
cmd.Parameters["ancompany"].Value = ancompany;
cmd.Parameters.Add("anbillid", OleDbType.VarChar, 20).Direction = ParameterDirection.Input;//指明传入的参数是输入给oracle存储过程用的
cmd.Parameters["anbillid"].Value = anbillid;
cmd.Parameters.Add("result", OleDbType.VarChar, 20).Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
con.Close();
return cmd.Parameters["result"].Value.ToString();
}
}
catch (Exception ex)
{
WriteErr(ex.Message, "");
return "错误" + ex.Message;
}
大家指导看这个啥问题,困扰了我很久了,急