J'utilise une base de données Oracle (10g) qui contient une procédure stockée appelée Foo.Impossible de se connecter à la base de données (OCIenVCreate a échoué)
Foo prend 2 datetime comme paramètres IN et 1 curseur comme paramètre OUT. J'ai essayé de faire la connexion et la requête à la base de données avec OleDbCommand, mais comme Foo a besoin d'un curseur, je n'ai pas d'autre choix que d'utiliser OracleCommand (non?).
Lorsque j'essaie de me connecter à la base de données, j'obtiens l'erreur suivante: "OCIenvCreate a échoué le code de retour -1". J'ai donné les permissions correctes à l'utilisateur ASPNET pour le fichier oci.dll afin qu'il puisse le lire et l'exécuter. Malheureusement, j'ai toujours la même erreur et je suis perdu.
Voici ce qui cause l'erreur
OracleConnectionStringBuilder conBuilder = new OracleConnectionStringBuilder();
conBuilder.DataSource = dataSrc;
conBuilder.UserID = user;
conBuilder.Password = password;
OracleConnection con = new OracleConnection(conBuilder.ConnectionString);
OracleCommand cmd = new OracleCommand("foo", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("this_is_a_cursor", OracleType.Cursor).Direction = ParameterDirection.Output;
con.Open(); // Cause the error at runtime
OracleDataReader reader = cmd.ExecuteReader();
GridView1.DataSource = reader;
GridView1.DataBind();
con.Close();
J'ai remarqué que d'autres personnes ont le même problème. Je lance l'application à partir d'une édition Windows Server 2003 Entreprise (j'espère que cela peut aider).
Merci.