Click here to Skip to main content
15,888,060 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi All,

I have a stored procedure in Oracle which has the following signature

SQL
create or replace 
PROCEDURE CAT_POPULATE_GFRN_DETAILS_PRC
(
  varGFCIDLIST IN VARRAY_VARCHAR_TYPE,
  resultset    OUT types.cursorType
)

where VARRAY_VARCHAR_TYPE has following definition
SQL
create or replace
TYPE       "VARRAY_VARCHAR_TYPE"     IS TABLE OF VARCHAR2(400);

How to pass the equivalent Oracle (ODP.Net) in C# to call the procedure.

I have tried following code but it gives me exception

C#
OracleCommand cmdSSORRData = new OracleCommand();
               cmdSSORRData.Connection = con;
               cmdSSORRData.CommandText = "CAT_POPULATE_GFRN_DETAILS_PRC";
               cmdSSORRData.CommandType = CommandType.StoredProcedure;
               OracleParameter paramGFCID = cmdSSORRData.Parameters.Add("varGFCIDLIST",  OracleDbType.Varchar2, ParameterDirection.Input);
               OracleParameter curSSORRValue = cmdSSORRData.Parameters.Add("resultset", OracleDbType.RefCursor, ParameterDirection.Output;                paramGFCID.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
               paramGFCID.Value = selectedGFCIDs.ToArray();
               OracleDataAdapter da = new OracleDataAdapter(cmdSSORRData);
               da.Fill(dsGFRNDetails);


Exception Details

VB
Oracle.DataAccess.Client.OracleException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'CAT_POPULATE_GFRN_DETAILS_PRC'
ORA-06550: line 1, column 7:



Thanks in advance !!

"Happy Coding"
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900