recuperer la valeur de retoure procedure stockée c#
Bonjour
j'essaye de récupérer le valeur de retour d'une procédure stockée avec C#. Mais j'ai des erreurs que je comprends pas. voila mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| public void ExecProcedure(string tableName, string prefixe)
{
//Intialisation du parametere de la connxion
OracleConnection con = new OracleConnection(this._connectionString);
OracleCommand commandeProc = con.CreateCommand();
commandeProc.CommandType = CommandType.StoredProcedure;
OracleParameter param;
OracleTransaction tran = null;
try
{
con.Open();
tran = con.BeginTransaction();
commandeProc.Transaction = tran;
commandeProc.CommandText = "mim.MIM_RETOURNE_CODESUIVANT";
// Création des paramètres en entrée
//Nom de la tabele string
param = new OracleParameter();
param.ParameterName = "LeNomTable";
param.OracleType = OracleType.VarChar;
param.Value = tableName;
param.Direction = ParameterDirection.Input;
commandeProc.Parameters.Add(param);
//prefixe string
param = new OracleParameter();
param.ParameterName = "LePrefixe";
param.OracleType = OracleType.VarChar;
param.Value = prefixe;
param.Direction = ParameterDirection.Input;
commandeProc.Parameters.Add(param);
//LeNumSuivant int
param = new OracleParameter();
param.ParameterName = "LeNumSuivant";
param.OracleType = OracleType.Number;
param.Value = 0;
param.Direction = ParameterDirection.Output;
commandeProc.Parameters.Add(param);
int LeNumSuivant;
LeNumSuivant = Convert.ToInt32(commandeProc.ExecuteOracleScalar().ToString());
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw ex;
} |
la signature de Pl est
Code:
CREATE OR REPLACE PROCEDURE MIM.MIM_RETOURNE_CODESUIVANT(LeNomTable IN VARCHAR2, LePrefixe IN VARCHAR2, LeNumSuivant OUT NUMBER) IS
le pl marche très biens sur oracle. mais avec c# j'ai l'erreur suivante :
Citation:
La référence d'objet n'est pas définie à une instance d'un objet.
est ce que vous avez une idée SVP. merci