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 08/01/2008, 13h21   #1
Membre à l'essai
 
Inscription : octobre 2005
Messages : 132
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 132
Points : 21
Points : 21
Par défaut Message d'erreur - utilisation de paramètres

bonjour,
je me connecte à un serveur ORACLE. Je parviens à récupérer toutes les données mais dès que je souhaite utiliser des paramètres (en VB.NET) j'ai le message "ORA-01036: numéro/nom de variable interdit".

et en cherchant partout sur le net, je ne trouve pas de solution à mon problème... il semblerait que cela vienne de la déclaration des paramètres mais je ne comprends pas.

Merci d'avance de votre aide
crapouye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 14h53   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
cool le jeu où on doit deviner le code qui pose problème et la version de la base
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 16h53   #3
Membre à l'essai
 
Inscription : octobre 2005
Messages : 132
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 132
Points : 21
Points : 21
j'ai commencé par indiquer le message pour savoir si ça parlait à quelqu'un...

sinon la version de la base c'est du 8i et voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 maconnexion = New OracleClient.OracleConnection
                    cmd = New OracleClient.OracleCommand
                    da = New OracleClient.OracleDataAdapter
                    maconnexion.ConnectionString = connexion_oracle()
maconnexion.Open()
        'charge la connexion a la bdd dans la future commande
        cmd.Connection = maconnexion
parametre1 = New OracleClient.OracleParameter("@param1", TextBox_recherche1.Text)
cmd.Parameters.Add(parametre1)
            sql_search1 = "[" & ComboBox_recherche1.Text & "]" & ComboBox_comparateur1.Text & " @param1"
da.SelectCommand = cmd
ds = New DataSet
        da.Fill(ds, "generique")
DataGridView1.DataSource = ds.Tables("generique")
Merci d'avance encore de votre aide précieuse
crapouye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 17h07   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
je ne connais pas VB (a priori t'es pas dans le bon forum) mais je crains que l'ordre de connexion soit erroné

http://drq.developpez.com/vb/tutoriels/ADO/Chapitre2/
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 17h39   #5
Membre à l'essai
 
Inscription : octobre 2005
Messages : 132
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 132
Points : 21
Points : 21
Ma connexion fonctionne parfaitement, d'ailleurs j'utilise ce ceode façon générique avec du Access et du SQL SERVER sans problème. C'est juste l'utilisation des paramètres avec ORACLe uniquement qui ne passe pas...

J'ai déjà essayé sur le forum de VB.NET mais on m'a conseillé de venir ici car c'était plus spécialisé.
crapouye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 18h12   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
ça fonctionne tellement parfaitement que ça marche pas pour Oracle

Tu ne te dit pas que la connexion aux produits Microsoft et à la base Oracle peuvent être différent ?

Si tu as une erreur de paramètre c'est bien des paramètres de connexion dont il s'agit a priori, c'est donc bien de ce coté qu'il faut chercher.

A moins que ça ne vienne de la requête elle-même que je ne vois pas dans l'exemple
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 09h05   #7
Membre à l'essai
 
Inscription : octobre 2005
Messages : 132
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 132
Points : 21
Points : 21
J'ai utilisé l'aide de Microsoft et d'Oracle et ils rapportent tous deux la même utilisation des clients ORACLE. En fait ce n'est pas une question de ORACLE ou SQL à la base car c'est la même plateforme de développement et la même logique de connexion ; la preuve je me connecte sans soucis aux tables ORACLE via mes requêtes... j'esperai trouver de l'aide dans ce forum concernant l'utilisation de paramètres Oracle. Mais à prioris non :'(

Merci quand même du temps consacré.
crapouye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 09h09   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
tu auras probablement plus de chance de trouver de l'aide dans le forum VB
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 12h42   #9
Invité de passage
 
Inscription : janvier 2008
Messages : 1
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 1
Points : 1
Points : 1
Bonjour,

j'ai eu le même message d'erreur sous C#.
Il semble que lorsqu'il y a un paramètre dans la requette sql :
ex SELECT * FROM MATABLE WHERE MONCHAMP = @monchamp

et que l'on ajoute pas le paramètre en question dans la commande ou lors d'une faute de frappe comme :
cmd.SetParameter("@moncham", monchamp.Text);
Oracle retourne l'érreur "ORA-01036: numéro/nom de variable interdit".

Voila, je ne sais pas si cette info sera utile, mais c'est une piste.

Cordialement
mesca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 13h36   #10
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
Le code erreur indique que l'ordre SQL est erroné car soit le nom du paramètre n'est pas trouvé dans la requete, soit il comporte un caractère interdit.

Avec oracle, on prepare le sql en premier et ensuite on lie les variables.

A tu essayé en ajoutant le parametre après l'affectation de la requête :

Sinon tu peux poster un exemple de requete générée ?
__________________
Vincent Rogier.

Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

OCILIB (C Driver for Oracle)

Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h22.


 
 
 
 
Partenaires

Hébergement Web