C#执行Oracle存储过程报错

int i=404 2016-03-30 02:32:20
参数数量没错,类型没错
错误是:
ORA-06550: line 1, column 7:

PLS-00306: wrong number or types of arguments in call to 'SP_ADDORDERS'

ORA-06550: line 1, column 7:

存储过程是:
create or replace PROCEDURE SP_ADDORDERS ----新建委托单
(
P_ORDERNUM IN NVARCHAR2,
P_EXPERINAME IN NVARCHAR2,
P_CONTRACTNUM IN NVARCHAR2,
P_BATCHNUM IN NVARCHAR2,
P_BALENUM IN NVARCHAR2,
P_SPECIMENNAME IN NVARCHAR2,
P_PARTNUM IN NVARCHAR2,
P_SAMPLEAMOUNT IN NUMBER,
P_FACILITYNAME IN NVARCHAR2,
P_FACILITYMODELNUM IN NVARCHAR2,
P_FACILITYCODE IN NVARCHAR2,
P_FACILITYINDATE IN NVARCHAR2,
P_TESTTYPE IN NVARCHAR2,
P_TESTINGPROJECT IN NVARCHAR2,
P_TESTBASIS IN NVARCHAR2,
P_ENTRUSTREQUIRE IN NVARCHAR2,
P_ENTRUSTUNITS IN NVARCHAR2,
P_ENTRUSTADDRESS IN NVARCHAR2,
P_ENTRUSCONTACTINFO IN NVARCHAR2,
P_DEPARTMENT IN NVARCHAR2,
P_ISRESERVEDSAMPLE IN NVARCHAR2,
P_RESERVEDDATE IN DATE,
P_ORDERSTATUS IN NVARCHAR2,
P_REMARK IN NVARCHAR2,
P_ExperimentType IN NUMBER,
P_TestEngineer in NVARCHAR2,
P_CREATETIME IN DATE,
P_RECEIVEDATE IN DATE,
retValue OUT NUMBER --返回值 0:增加失败 1:插入成功 2.单号已存在

)
IS
colNUM NUMBER;
BEGIN
SELECT COUNT (*)
INTO colNUM
FROM T_BUSINESS_ORDERS
WHERE ORDERNUM = P_ORDERNUM;

IF colNUM = 0
THEN
INSERT INTO T_BUSINESS_ORDERS (ID,
ORDERNUM,
EXPERINAME,
CONTRACTNUM,
BATCHNUM,
BALENUM,
SPECIMENNAME,
PARTNUM,
SAMPLEAMOUNT,
FACILITYNAME,
FACILITYMODELNUM,
FACILITYCODE,
FACILITYINDATE,
TESTTYPE,
TESTINGPROJECT,
TESTBASIS,
ENTRUSTREQUIRE,
ENTRUSTUNITS,
ENTRUSTADDRESS,
ENTRUSCONTACTINFO,
DEPARTMENT,
ISRESERVEDSAMPLE,
RESERVEDDATE,
ORDERSTATUS,
REMARK,
EXPERIMENTTYPE,
TESTENGINEER,
CREATETIME,
RECEIVEDATE)
VALUES (SEQ_BUSINESS_ORDERSID.NEXTVAL,
P_ORDERNUM,
P_EXPERINAME,
P_CONTRACTNUM,
P_BATCHNUM,
P_BALENUM,
P_SPECIMENNAME,
P_PARTNUM,
P_SAMPLEAMOUNT,
P_FACILITYNAME,
P_FACILITYMODELNUM,
P_FACILITYCODE,
P_FACILITYINDATE,
P_TESTTYPE,
P_TESTINGPROJECT,
P_TESTBASIS,
P_ENTRUSTREQUIRE,
P_ENTRUSTUNITS,
P_ENTRUSTADDRESS,
P_ENTRUSCONTACTINFO,
P_DEPARTMENT,
P_ISRESERVEDSAMPLE,
P_RESERVEDDATE,
P_ORDERSTATUS,
P_REMARK,
P_ExperimentType,
P_TestEngineer,
P_CREATETIME,
P_RECEIVEDATE);

IF (SQL%ROWCOUNT) > 0
THEN
retValue := 1;
ELSE
retValue := 0;
END IF;

COMMIT;
ELSE
retValue := 2;
END IF;

COMMIT;
END SP_ADDORDERS;
...全文
195 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南小鱼 2016-03-31
  • 打赏
  • 举报
回复
1、在pl/sql做下测试,确定该存储过程编译、执行都ok 2、wrong number or types of arguments in call to 'SP_ADDORDERS' 这个错误提示表明,是你的C#代码调用这个存储过程的时候出问题了,检查下调用时参数个数、类型和存储过程是否匹配
鏡椛氹鈅 2016-03-30
  • 打赏
  • 举报
回复
自己去在PL/SQL里面调试看看你的存储过程是不是有问题

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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