Bonjour,
J'ai un soucis d'execution d'une procédure stockée sur une base oracle.

La procédure je ne connais pas son contenu.
Je sait qu'elle posséde 2 paramètres et quel renvoi un number.

Ma connexion se passe bien.

Mais à l'execution de ExecuteNonQuery() j'ai une execption
ORA-06550 PLS-00801 erreur interne[22503] PL/SQL:Statement ignored
Voici ma méthode:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
        public bool execProcedureOracle(string sNomProc, string[,] lstParametre) 
        {
            //Déclaration des Variables
            bool bValRetour = true;
            try
            {
                this.MaCnx.Open();
                this.mcmd = new OracleCommand(sNomProc, MaCnx);
                this.mcmd.CommandType = CommandType.StoredProcedure;
 
                for (int i = 0; i < 3; i++)
                {
                    addParametre(lstParametre[i, 0], lstParametre[i, 1], lstParametre[i, 2], lstParametre[i, 3]);
                }
                this.mcmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                sMsgException = ex.Message;
                bValRetour = false;
            }
            finally
            {
                if (MaCnx != null)
                {
                    this.MaCnx.Close();
                }
 
            }
 
 
            return bValRetour;
        }
et le programme qui l'appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
       static void Main()
        {
            Oracle cnxOracle = new Oracle();
            string sMaProc;
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
 
            sMaProc = "DOSSIER.GES_APPEL_EXT.OPENSESSION( User ,Pwd )";
 
            string sPwd = "";
            string sLogin = "Invité";
            string[,] lstEnteteParametre = { {"","int","","o"},{ "User", "varchar2", sLogin,"i" }, { "Pwd", "varchar2", sPwd ,"i"} };
 
 
 
            cnxOracle.connexionOracle("DOSSIER", "ADMIN", "ADMIN", 120);
            if (true == cnxOracle.execProcedureOracle(sMaProc, lstEnteteParametre))
            {
                sMaProc = "DOSSIER.GES_APPEL_EXT.CLOSESESSION()";
                cnxOracle.execProcedureOracle(sMaProc, lstEnteteParametre);
                MessageBox.Show("OK!!!!!");
                System.Console.ReadKey();
            }
            else
            {
                MessageBox.Show(cnxOracle.getMsgErreur());
                Application.Run(new Form1());
            }
Par avance merci.