Oracle
 sql >> Base de données >  >> RDS >> Oracle

Erreur de syntaxe lors de la tentative d'appel d'un package Oracle à l'aide d'ODBC en C#

Enfin réussi à le faire fonctionner. J'ai ajouté la taille de chaque paramètre et apporté des corrections à l'appel :la fonction a quatre paramètres (1 entrée, 3 sorties) et aucune valeur de retour :

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();

J'ai également trouvé ce document très utile :Utilisation des pilotes ODBC Oracle avec un troisième Produits de fête