C# .NET - ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'SSP

Asked By sarath kumar on 21-Sep-13 10:33 AM
create or replace procedure ssp_mm_proc_indent_spec_int(
 
i_INDREF  VARCHAR2,
i_SPECINST VARCHAR2,
i_CREATEDBY NUMBER,
o_ERRMESSAGE OUT NUMBER)

is

li_code_location number(5);
v_errortxt_msg varchar2(250);
v_proc_text varchar2(50);


BEGIN
 li_code_location := 1;


 insert into SSP_MM_INDENT_SPEC_INS(
INDREF,
SPECINST,
CREATEDBY,
CREATEDATE)
values(
i_INDREF ,
i_SPECINST ,
i_CREATEDBY,
SYSDATE);

commit;

o_ERRMESSAGE :=0;

  EXCEPTION
  WHEN OTHERS THEN
   ROLLBACK;
    v_errortxt_msg := SQLERRM || ' : ERROR WHILE Selection.'||' Location : '||li_code_location;
    v_proc_text := 'ssp_mm_proc_indent_spec_int';
    o_ERRMESSAGE := 1;

    insert into ssp_sms_error_log(log_id,error_msg,object_text,createby,createdate) values (log_sms_seq.nextval,v_errortxt_msg,v_proc_text,i_createdby,sysdate);
    
    COMMIT;

END;
Robbe Morris replied to sarath kumar on 21-Sep-13 12:24 PM
You don't say which one of these stored procedures is the issue or where this error is occurring.  I'll assume its the primary procedure ssp_mm_proc_indent_spec_int.  Are you passing in a string data type that contains a number for the parameter I_CREATEDBY?

You don't specify the length of the varchar2 permitted by I_INDREF or I_SPECINST or lengths for the other two parameters.  I don't recall what Oracle does in that case (haven't used Oracle since 1999).

Whatever it is, the error message is telling you exactly what the problem is.  You either are not sending in the right number of parameters (perhaps the syntax for the OUT parameter o_ERRMESSAGE is wrong in your application) or you are setting the data type to the parameter which doesn't match what you've defined here.
sarath kumar replied to Robbe Morris on 23-Sep-13 07:43 AM
thank u robbe