Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/03/2007, 18h11   #1
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 69
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 69
Points : 17
Points : 17
Par défaut Requete parametrée Oracle

Salut salut,

voila j'ai un gros prob et je ne vois pas du tout d'ou cela peut provenir malgré avoir visité tous les forums discutant de mon probleme....alors j'espere pouvoir trouver une réponse ici
mon probleme est le suivant : j'essaye de creer un user oracle en c#

Code :
1
2
3
4
5
6
7
8
9
10
 
OracleCommand cmd = new OracleCommand(
           "CREATE USER :usr "+
           "IDENTIFIED BY :pass",
           _oraConnection);
OracleParameter p1 = cmd.Parameters.ADD(new OracleParameters(":usr", OracleDbType.VarChar2));
OracleParameter p2 = cmd.Parameters.ADD(new OracleParameters(":pass", OracleDbType.VarChar2));
 
p1.Value = usrname; // avec usrname de type string
p2.Value = pass;      // idem pour pass
quand j'execute mon code, j'ai la fameuse erreur
ORA-01036 : numero/nom de variable interdit.

alors certain me conseillerons de ne pas mettre ":usr" et/ou ":pass" dans les parameteres cmd (cmd.Parameters.etc...), j'ai deja essayé et ca.
J'ai egalement essayé :
Code :
1
2
3
4
5
6
 
cmd.Parameters.ADD("usr", OracleDbType.VarChar2);
cmd.Parameters.ADD("pass", OracleDbType.VarChar2);
 
cmd.Parameters["usr"].Value = usrname;
cmd.Parameters["pass"].Value = pass;
bref j'ai (quasiment?) tout essayé...si qqun a d'autres idées svp ??
Merci
dim971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 19h34   #2
Membre Expert
 
Inscription : avril 2006
Messages : 1 024
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 024
Points : 1 175
Points : 1 175
Je ne connais pas précisément le C# mais j'ai l'impression que les instructions que tu tentes d'utiliser se basent sur des variables BIND.

Un "CREATE USER" n'est pas une instruction SQL, c'est du DDL. En tout cas, ça ne peut pas marcher avec des paramètres. Il faut que tu composes ta chaine DDL complète ("CREATE USER " + p1.Value + " IDENTIFIED BY " + p2.Value ) et que tu l'exécute comme ça.

De plus ce genre de commande n'ouvre pas de curseur de résultats comme le ferait un select, il faut donc utiliser l'instruction appropriée (que je ne connais pas )
remi4444 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 19h38   #3
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 69
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 69
Points : 17
Points : 17
tu sais quoi ? je crois que t'as raison... quand je rentre la chaine en dur dans le programme (ex: "CREATE USER toto IDENTIFIED BY oracle") ca passe...et effectivement j'avais pas pensé a l'aspect DDL...arf si tu savais combien d'heure j'y ai passé....
Merci
dim971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h05.


 
 
 
 
Partenaires

Hébergement Web