Error PLS-00306: wrong number or types of arguments in call to 'P_CHECKAVGRATE' PL/SQL: Statement ignored

1.1k Views Asked by At

I just started with SQL/PLSQL and I am writing a procedure that gets data from a SOAP api. The SOAP is working fine (tested it via soapUI), the procedure was compiled succesfully, but when I try to call it I have the following error:

[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

my procedure spec:

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

Procedure call:

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;

Does anybody know what the problem is?

1

There are 1 best solutions below

0
On BEST ANSWER

It is not the procedure itself that is wrong, but DBMS_OUTPUT.PUT_LINE call. You can't use a procedure name as the "source" of a display value, but separate variables, e.g.

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