.NET: reader di table of da function con Oracle

di
Anonimizzato3251
il
1 risposte

.NET: reader di table of da function con Oracle

Ciao a tutti,
ho un problema urgente da risolvere

Da .Net devo chiamare una funzione contenuta in un package che ritorni una tabella da me definita.

Package:
CREATE OR REPLACE PACKAGE myPck AS
TYPE myRecord IS RECORD
(
IDPR NUMBER (12),
DESPR VARCHAR2 (40)
-- altri campi ...
);

TYPE myTable IS TABLE OF myRecord
INDEX BY BINARY_INTEGER;

FUNCTION Elabora(p_utente IN VARCHAR2)
RETURN myTable;

END myPck;

C# da applicativo .Net:
public List<Elenco> CallProc1(string idPr)
{
using (OracleConnection cn = new OracleConnection(this.ConnectionString))
{
List<Elenco> elenco = new List<Elenco>();
OracleCommand cmd = cn.CreateCommand();
cmd.CommandText = \"myPck.Elabora\";
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add(new OracleParameter(\"IO_CURSOR\", OracleType.Cursor)).Direction = ParameterDirection.Input;
cmd.Parameters[0].Value = idPr;

/* qua forse manca qualcosa per dire che si tratta di una function ??? */

OracleDataReader reader;

cn.Open();

reader = command.ExecuteReader();
while (reader.Read())
{

/* saranno corrette le seguenti righe ??? */
Elenco ele = new Elenco();
ele.idPr = (int)reader[\"IDPR\"];
ele.DesPr = reader[\"DESPR\"].ToString();
elenco.Add(ele);
/**/

}
reader.Close();

}

return elenco;

}

1 Risposte

  • Re: .NET: reader di table of da function con Oracle

    Nel testo soprastante la riga
    cmd.Parameters.Add(new OracleParameter(\"IO_CURSOR\", OracleType.Cursor)).Direction = ParameterDirection.Input;

    va sostituita con
    cmd.Parameters.Add(new OracleParameter(\"IdPr\", OracleType.VarChar)).Direction = ParameterDirection.Input;


    Non riesco comunque a chiamare la funzione da .Net !!!
    Mi sapete dare un suggerimento ????
Devi accedere o registrarti per scrivere nel forum
1 risposte