简体   繁体   中英

ORA-06550:PLS-00306: wrong number or types of arguments in call;ORA-06550:

Simple insert operation via vb.net but getting error:

ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'PROCEDURE_NAME' ORA-06550: line 1, column 7:

May be I am missing or overlooking something. Some help will be really appreciated.

SQL:

CREATE OR REPLACE procedure SG.PROCEDURE_NAME(
        TypeDefinitionFinal in Char,
        TypeValueFinal in Char,
        ValidFrom in Char,
        ValidTo in Char,
        MethodType in integer,
        MethodValue in number,
        Reason in Char,
        CurrentTimeStamp in Date,
        LoggedUser in Char,
        StoresList in Char
) as

begin

    INSERT INTO TABLE_NAME
      (TYPE_DEFINITION, TYPE_VALUE, VALID_FROM, VALID_TO, METHOD, VALUE, REASON, CREATE_TIMESTAMP, ENTERED_BY) 
    VALUES
       (TypeDefinitionFinal ,TypeValueFinal ,ValidFrom ,ValidTo ,MethodType ,MethodValue ,Reason ,CurrentTimeStamp ,LoggedUser );

end;
/

VB.NET Code:

Dim OraCommand As New OracleCommand("SG.PROCEDURE_NAME", OraConnection)
OraCommand.CommandType = CommandType.StoredProcedure

OraCommand.Parameters.Add(New OracleParameter("TypeDefinitionFinal", OracleType.Char)).Value = TypeDefinitionFinal
OraCommand.Parameters.Add(New OracleParameter("TypeValueFinal", OracleType.Char)).Value = TypeValueFinal
OraCommand.Parameters.Add(New OracleParameter("ValidFrom", OracleType.Char)).Value = ValidFrom
OraCommand.Parameters.Add(New OracleParameter("ValidTo", OracleType.Char)).Value = ValidTo
OraCommand.Parameters.Add(New OracleParameter("MethodType", OracleType.Int32)).Value = MethodType
OraCommand.Parameters.Add(New OracleParameter("MethodValue", OracleType.Number)).Value = MethodValue
OraCommand.Parameters.Add(New OracleParameter("Reason", OracleType.Char)).Value = Reason
OraCommand.Parameters.Add(New OracleParameter("CurrentTimeStamp", OracleType.DateTime)).Value = CurrentTimeStamp
OraCommand.Parameters.Add(New OracleParameter("LoggedUser", OracleType.Char)).Value = LoggedUser
OraCommand.Parameters.Add(New OracleParameter("StoreList", OracleType.Char)).Value = StoreList

OraCommand.ExecuteNonQuery()

This is just a parameter name discrepancy. In your procedure definition you have:

        StoresList in Char

But in your VB code you have a slightly different name, missing an s :

OraCommand.Parameters.Add(New OracleParameter("StoreList", OracleType.Char)).Value = StoreList

Change "StoreList" to "StoresList" , or change the procedure definition to StoreList - doesn't matter which way you do it as long as they match.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM