我写了个存储过程,测试能通过,但是应用时总提示参数个数或类型出错,请能者帮忙解决!!

错误:ORA-06550:第1行,第7列:PLS-00306:wrongnumberortypesofargumentsincallto'P_C_DS_ESL_EXPDA... 错误:ORA-06550: 第 1 行, 第 7 列: PLS-00306: wrong number or types of arguments in call to 'P_C_DS_ESL_EXPDATA1' ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored
存储过程:
CREATE OR REPLACE PROCEDURE P_C_DS_ESL_EXPDATA
(I_PARA VARCHAR2 ,
O_SQL OUT VARCHAR2
)
IS
v_SysDate DATE;
v_Num INT;
e_Error EXCEPTION;
BEGIN
v_Sysdate := SYSDATE;
--判断是否有待回传的任务
SELECT COUNT(ID)
INTO v_Num
FROM T_C_ESL_BITASK
WHERE Status = 0 ;
IF v_Num = 0 THEN
RAISE e_Error;
END IF;
O_SQL := 'select T.CITYID,'
|| ' T.ACCEPTPHONE,'
|| ' T.CALLSTATUS ,'
|| ' C.EXT01,'
|| ' C.EXT02,'
|| ' C.EXT03 ,'
|| ' NULL'
|| ' FROM T_ESL_SERVICEINFO T ,'
|| ' T_C_ESL_BITASK A,'
|| ' T_C_ESL_BIRELCAMPAIGN B,'
|| ' T_C_ESL_BIRECORD C '
|| ' WHERE T.CAMPAIGNID = A.CAMPAIGNID'
|| ' AND A.CAMPAIGNID = B.CAMPAIGNID'
|| ' AND B.Fileid = C.Fileid '
|| ' AND A.Status = 0 ';
COMMIT;
--更新回传任务状态
UPDATE T_C_ESL_BITASK
SET Status = 1 , --成功
operateTime = v_Sysdate
WHERE Status = 0 ;
EXCEPTION
-- 空数据异常
WHEN e_Error THEN
-- 返回SQL为'无回传任务'
O_SQL:='SELECT 1, ''没有相应的回传任务'' FROM DUAL';
COMMIT;
WHEN OTHERS THEN
--更新回传任务状态
UPDATE T_C_ESL_BITASK
SET Status = 2 , --失败
operateTime = v_Sysdate
WHERE Status = 0 ;
COMMIT;
END P_C_DS_ESL_EXPDATA;
相关表:CREATE TABLE T_C_ESL_BITASK
( ID VARCHAR2(30) NOT NULL ENABLE,
STAFFID VARCHAR2(30),
CAMPAIGNID VARCHAR2(30),
FILENAME VARCHAR2(60),
OPERATETIME DATE,
STATUS NUMBER)
展开
 我来答
p_rain2002
推荐于2017-09-12 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:125万
展开全部
wrong number or types of arguments 这个是告诉 你 调用这个过程时 参数数量不对。你设置了 二个参数,调用时需要带两个参数调用
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式