调用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;
}

大家指导看这个啥问题,困扰了我很久了,急
...全文
920 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

12,166

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧