Oracle
 sql >> Database >  >> RDS >> Oracle

Errore di sintassi durante il tentativo di chiamare un pacchetto Oracle utilizzando ODBC in C#

Finalmente ha funzionato. Ho aggiunto la dimensione di ogni parametro e apportato correzioni alla chiamata:la funzione ha quattro parametri (1 in, 3 out) e nessun valore di ritorno:

using (OdbcCommand cmd = conn.CreateCommand())
{
    cmd.CommandText = "{ CALL TESTUSER.TESTPKG.TESTFUNC(?,?,?,?) }";
    cmd.CommandType = System.Data.CommandType.StoredProcedure;
    cmd.Parameters.Add("PARAM1", OdbcType.Decimal, 38).Direction = System.Data.ParameterDirection.Input;
    cmd.Parameters["PARAM1"].Value = var1;
    cmd.Parameters.Add("PARAM2", OdbcType.VarChar, 5).Direction = System.Data.ParameterDirection.Output;
    cmd.Parameters.Add("PARAM3", OdbcType.VarChar, 50).Direction = System.Data.ParameterDirection.Output;
    cmd.Parameters.Add("PARAM4", OdbcType.VarChar, 200).Direction = System.Data.ParameterDirection.Output;
    cmd.ExecuteNonQuery();

Ho anche trovato molto utile questo documento:Utilizzo dei driver Oracle ODBC con Third Prodotti per feste