Function Oracle & .NET

di
Anonimizzato3074
il
2 risposte

Function Oracle & .NET

Ciao a tutti,


ho un problema urgente da risolvere

dunque devo chiamare una funzione oracle che torna come risultato una tabella

Quello che ho scritto e'

<b> private void CallProc1()
{
OracleConnection connection = new OracleConnection("Data Source=svi3; User Id=bob;Password=bob;");
OracleCommand command = new OracleCommand();
OracleDataReader reader;
connection.Open();
command.Connection = connection;
command.CommandText = "funzione1";
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new OracleParameter("str", OracleType.Number)).Value = 2;
command.Parameters.Add(new OracleParameter("t_ksessio", OracleType.Number)).Value = 1;
command.Parameters.Add(new OracleParameter("IO_CURSOR", OracleType.Number)).Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(new OracleParameter("IO_CURSOR", OracleType.Number)).Direction = ParameterDirection.ReturnValue;
reader = command.ExecuteReader();
while (reader.Read())
{
...
}
reader.Close();
connection.Close();
}
</b>
Nulla di fatto mi dice :
wrong number or types of arguments in call to 'funzione1'

se Tolgo il terzo parametro invece mi dice che non e' una procedura e va bene
Allora come diav... si fa

Help

bye kyky

2 Risposte

  • Re: Function Oracle & .NET

    Partendo dal presupposto che sarebbe utile guardare il codice della tua function oracle e partendo dal presupposto che il codice che hai pubblicato sia esattamente quello che stai cercando di implementare, passo a farti le tre seguenti osservazioni:

    1 - Non dovrebbe essere necessario esplicitare un parametro di ritorno (ammesso che in IO_CURSOR tu voglia ritornare la tabella)

    1 - Non puoi creare due parametri con lo stesso nome "IO_CURSOR"

    2 - Se stai cercando di passare il cursore della tabella come valore di ritorno, il tuo codice non funzionerà mai;

    P.S. Perchè non provi una strada più sempice eseguendo direttamente il comando sql di esecuzione della funzione??
  • Re: Function Oracle & .NET

    Ti ringrazio molto ma ho risolto:

    comunque

    1) il parametro di ritorno l'ho dovuto specificare
    2) effettivamente ho commesso un errore di ortografia nel taglia/incolla dell codice ops!!!
    3) effettivamente si puo passare un cursore come out ma non faceva per il mio caso

    Solo chiamare direttamente la funzione non basta

    Il vero errore era invece sul tipo di parametro in output


    bye kyky
Devi accedere o registrarti per scrivere nel forum
2 risposte