【问题标题】:Error PLS-00306: wrong number or types of arguments in call to 'P_CHECKAVGRATE' PL/SQL: Statement ignored错误 PLS-00306:调用“P_CHECKAVGRATE”PL/SQL 时参数的数量或类型错误:语句被忽略
【发布时间】:2021-07-08 08:02:23
【问题描述】:

我刚开始使用 SQL/PLSQL,我正在编写一个从 SOAP api 获取数据的过程。 SOAP 工作正常(通过soapUI 测试),程序编译成功,但是当我尝试调用它时出现以下错误:

[Error] Execution (7: 90): ORA-06550: line 7, column 90:
PLS-00306: wrong number or types of arguments in call to 'P_CHECKAVGRATE'
ORA-06550: line 7, column 2:
PL/SQL: Statement ignored

我的程序规范:

procedure p_CheckAvgRate(ab in varchar2, bc in NUMBER, cd in NUMBER, 
de in NUMBER, abc out number, bca out varchar2, cab out varchar2);

程序调用:

declare
  aaa number;
  bbb varchar2(200); 
  ccc varchar2(200);
begin
 PacPackage.P_CHECKAVGRATE('abcd', 0, 1, 2, aaa, bbb, ccc);
 DBMS_OUTPUT.PUT_LINE ( 'P_CHECKAVGRATE = ' || PacPackage.P_CHECKAVGRATE );
end;

有人知道问题出在哪里吗?

【问题讨论】:

    标签: sql stored-procedures plsql toad plsql-package


    【解决方案1】:

    不是程序本身出错,而是DBMS_OUTPUT.PUT_LINE调用。您不能使用过程名称作为显示值的“来源”,而是使用单独的变量,例如

    DBMS_OUTPUT.PUT_LINE ( 'aaa = ' || aaa ||', bbb = ' || bbb);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 2014-10-01
      相关资源
      最近更新 更多