Home All Groups Group Topic Archive Search About

Calling Oracle SPs w/Parameters (PLS-00306)

Author
10 Dec 2004 12:33 AM
Scott McCormick
Hello,

I am trying to call several Oracle Stored Procedure using the "MS OLE DB for
Oracle" driver, and have gotten the same error regardless of the SP I call.

The error is:[pre]
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to
'ISR_PMPM_PARAMETERINSPROC'
ORA-06550: line 1, cloumn 7:
PL/SQL: Statement Ignored[/pre]

The main SP I am trying to call looks like this (not all of them have out
values, though):
[pre]
CREATE OR REPLACE PROCEDURE ISR_PMPM_PARAMETERInsProc
(
    v_PMPM_NAME                                IN VARCHAR2,
    v_PMPM_DESC                  IN VARCHAR2,
    v_PMPM_SIZE                                  IN NUMBER,
    v_PMPM_DEFAULT_VALUE                IN VARCHAR2,
    v_PMPM_VALUE                               IN VARCHAR2,
    v_PMPM_DISPLAY_ORDER                 IN NUMBER,
    v_PMPM_AUDIT_USER                      IN VARCHAR2,
    v_PMPM_AUDIT_DATE                      IN DATE,
    v_PMPS_UID                                    IN NUMBER,
    v_KTTR_VALUE_TYPE_UID                IN NUMBER,
    v_PMPM_UID                                   OUT NUMBER
    )
AS
BEGIN
    INSERT INTO ISR_PMPM_PARAMETER(PMPM_NAME,
                                   PMPM_DESC,
                                   PMPM_SIZE,
                                   PMPM_DEFAULT_VALUE,
                                   PMPM_VALUE,
                                   PMPM_DISPLAY_ORDER,
                                   PMPM_AUDIT_USER,
                                   PMPM_AUDIT_DATE,
                                   PMPS_UID,
                                   KTTR_VALUE_TYPE_UID)
    VALUES(v_PMPM_NAME,
           v_PMPM_DESC,
           v_PMPM_SIZE,
           v_PMPM_DEFAULT_VALUE,
           v_PMPM_VALUE,
           v_PMPM_DISPLAY_ORDER,
           v_PMPM_AUDIT_USER,
           v_PMPM_AUDIT_DATE,
           v_PMPS_UID,
           v_KTTR_VALUE_TYPE_UID)
           Returning PMPM_UID into v_PMPM_UID;

END;
[/pre]

The code I am using to create the call to the procedure is:

[pre]
Dim com As New OracleCommand("ISR_PMPM_PARAMETERInsProc", oraCon)
      com.CommandType = CommandType.StoredProcedure

Dim outValue As New OracleParameter("v_PMPM_UID", OracleType.Number, 22)
        outValue.Direction = ParameterDirection.Output

com.Parameters.Add(New OracleParameter("v_PMPM_NAME",
               OracleType.VarChar, 50)).Value = ParameterName
com.Parameters.Add(New OracleParameter("v_PMPM_DESC", OracleType.VarChar,
                100)).Value = ParameterDescription
com.Parameters.Add(New OracleParameter("v_PMPM_SIZE", OracleType.Number,
                 3)).Value = 3
com.Parameters.Add(New OracleParameter("v_PMPM_VALUE",
                 OracleType.VarChar, 999)).Value = ParameterValue
com.Parameters.Add(New OracleParameter("v_PMPS_UID", OracleType.Number,
                 10)).Value = ParameterSetID
com.Parameters.Add(New OracleParameter("v_KTTR_VALUE_TYPE_UID",
                 OracleType.Number, 10)).Value = ParameterDataType
com.Parameters.Add(outValue)[/pre]

And the actual code to call it is:
[pre]
Try
If oraCon.State = ConnectionState.Closed Or _
   oraCon.State = ConnectionState.Broken Then
                oraCon.Open()
                com.ExecuteNonQuery()
end if
catch...
end try
[/pre]

If anyone has any advice or ideas, I would greatly appreciate it.

Thanks,
Scott

Author
10 Dec 2004 6:29 AM
Joyjit Mukherjee
Hi,

From the code I could see that the number of parameters for the
OracleCommand object does not matches the Actual Oracle SP parameters. These
two should match.

regards
Joyit

Show quote
"Scott McCormick" <Scott McCorm***@discussions.microsoft.com> wrote in
message news:4EEDE946-E255-435B-A594-EA5B607C6809@microsoft.com...
> Hello,
>
> I am trying to call several Oracle Stored Procedure using the "MS OLE DB
for
> Oracle" driver, and have gotten the same error regardless of the SP I
call.
>
> The error is:[pre]
> ORA-06550: line 1, column 7:
> PLS-00306: wrong number or types of arguments in call to
> 'ISR_PMPM_PARAMETERINSPROC'
> ORA-06550: line 1, cloumn 7:
> PL/SQL: Statement Ignored[/pre]
>
> The main SP I am trying to call looks like this (not all of them have out
> values, though):
> [pre]
> CREATE OR REPLACE PROCEDURE ISR_PMPM_PARAMETERInsProc
> (
>     v_PMPM_NAME                                IN VARCHAR2,
>     v_PMPM_DESC           IN VARCHAR2,
>     v_PMPM_SIZE                                  IN NUMBER,
>     v_PMPM_DEFAULT_VALUE                IN VARCHAR2,
>     v_PMPM_VALUE                               IN VARCHAR2,
>     v_PMPM_DISPLAY_ORDER                 IN NUMBER,
>     v_PMPM_AUDIT_USER                      IN VARCHAR2,
>     v_PMPM_AUDIT_DATE                      IN DATE,
>     v_PMPS_UID                                    IN NUMBER,
>     v_KTTR_VALUE_TYPE_UID                IN NUMBER,
>     v_PMPM_UID                                   OUT NUMBER
>     )
> AS
> BEGIN
>     INSERT INTO ISR_PMPM_PARAMETER(PMPM_NAME,
>                                    PMPM_DESC,
>                                    PMPM_SIZE,
>                                    PMPM_DEFAULT_VALUE,
>                                    PMPM_VALUE,
>                                    PMPM_DISPLAY_ORDER,
>                                    PMPM_AUDIT_USER,
>                                    PMPM_AUDIT_DATE,
>                                    PMPS_UID,
>                                    KTTR_VALUE_TYPE_UID)
>     VALUES(v_PMPM_NAME,
>            v_PMPM_DESC,
>            v_PMPM_SIZE,
>            v_PMPM_DEFAULT_VALUE,
>            v_PMPM_VALUE,
>            v_PMPM_DISPLAY_ORDER,
>            v_PMPM_AUDIT_USER,
>            v_PMPM_AUDIT_DATE,
>            v_PMPS_UID,
>            v_KTTR_VALUE_TYPE_UID)
>    Returning PMPM_UID into v_PMPM_UID;
>
> END;
> [/pre]
>
> The code I am using to create the call to the procedure is:
>
> [pre]
>  Dim com As New OracleCommand("ISR_PMPM_PARAMETERInsProc", oraCon)
>       com.CommandType = CommandType.StoredProcedure
>
> Dim outValue As New OracleParameter("v_PMPM_UID", OracleType.Number, 22)
>         outValue.Direction = ParameterDirection.Output
>
> com.Parameters.Add(New OracleParameter("v_PMPM_NAME",
>                OracleType.VarChar, 50)).Value = ParameterName
> com.Parameters.Add(New OracleParameter("v_PMPM_DESC", OracleType.VarChar,
>                 100)).Value = ParameterDescription
> com.Parameters.Add(New OracleParameter("v_PMPM_SIZE", OracleType.Number,
>                  3)).Value = 3
> com.Parameters.Add(New OracleParameter("v_PMPM_VALUE",
>                  OracleType.VarChar, 999)).Value = ParameterValue
> com.Parameters.Add(New OracleParameter("v_PMPS_UID", OracleType.Number,
>                  10)).Value = ParameterSetID
> com.Parameters.Add(New OracleParameter("v_KTTR_VALUE_TYPE_UID",
>                  OracleType.Number, 10)).Value = ParameterDataType
> com.Parameters.Add(outValue)[/pre]
>
> And the actual code to call it is:
> [pre]
> Try
> If oraCon.State = ConnectionState.Closed Or _
>    oraCon.State = ConnectionState.Broken Then
>                 oraCon.Open()
>                 com.ExecuteNonQuery()
> end if
> catch...
> end try
> [/pre]
>
> If anyone has any advice or ideas, I would greatly appreciate it.
>
> Thanks,
> Scott
Author
10 Dec 2004 1:55 PM
Paul Clement
On Thu, 9 Dec 2004 16:33:06 -0800, Scott McCormick <Scott McCorm***@discussions.microsoft.com>
wrote:

¤ Hello,
¤
¤ I am trying to call several Oracle Stored Procedure using the "MS OLE DB for
¤ Oracle" driver, and have gotten the same error regardless of the SP I call.
¤
¤ The error is:[pre]
¤ ORA-06550: line 1, column 7:
¤ PLS-00306: wrong number or types of arguments in call to
¤ 'ISR_PMPM_PARAMETERINSPROC'
¤ ORA-06550: line 1, cloumn 7:
¤ PL/SQL: Statement Ignored[/pre]
¤
¤ The main SP I am trying to call looks like this (not all of them have out
¤ values, though):

You need to supply all of the parameters defined in your Oracle SP regardless of whether they have
values. I would also recommend adding them to the collection in the order they appear in the SP
declaration.


Paul ~~~ pclem***@ameritech.net
Microsoft MVP (Visual Basic)

AddThis Social Bookmark Button