ORA-01036: numéro/nom de variable variable interdit

Signaler
Messages postés
7
Date d'inscription
lundi 21 octobre 2013
Statut
Membre
Dernière intervention
14 mars 2014
-
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
-
Bonjour,
je souhaiterai faire cette insertion mais j ai une erreur comme quoi "erreur:System.Data.OracleClient.OracleExeption: ORA-01036: numéro/nom de variable interdit"
est ce que quelqu un peu me donner une réponse clair, parceque je débute et c'est pas évident encore!!!

Voici mon code:
##
public void Enregistrer()
{
try
{
OracleConnection connection = Connexion.connecter();
OracleCommand command = new OracleCommand();
string requete = "INSERT INTO CATEGORIE (ID_CATEGORIE,LIBELLE,DESCRIPTION) VALUES(SequenceCategorie.NextVal,@libelle,@description)";
command.Connection = connection;
command.CommandText = requete;
command.Prepare();
command.Parameters.AddWithValue("@libelle", this.libelle);
command.Parameters.AddWithValue("@description",this.description);
command.ExecuteNonQuery();
MessageBox.Show("Enregistrement effectué avec Succès");
connection.Close();
}
catch (OracleException ex)
{
MessageBox.Show("erreur:"+ex.ToString());
}
}
##

Merci 1000 fois.

2 réponses

Messages postés
29573
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 septembre 2020
337
Bonjour,

TOn champ ID_CATEGORIE .. ne serait-ce pas un champ auto incrémenté ?
Si c'est le cas... tu n'as pas à le traiter dans ta requête.. c'est ta BDD qui s'en charge toute seule.
Messages postés
7
Date d'inscription
lundi 21 octobre 2013
Statut
Membre
Dernière intervention
14 mars 2014

merci. mais Je l'ai assaille mais sa na pas marcher ; j'ai le même message d'erreurs. J'ai créé une séquence pour ce champ( ID_CATEGORIE ..).
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
28
Bonjour

de mémoire, je crois que pour Oracle la syntaxe des paramètres est différentes que pour SQL server.
Essaye de remplacer les '@' par des ':'

string requete = "INSERT INTO CATEGORIE (ID_CATEGORIE,LIBELLE,DESCRIPTION)
VALUES(SequenceCategorie.NextVal,:libelle,:description);
...
command.Parameters.AddWithValue(":libelle", this.libelle);
command.Parameters.AddWithValue(":description",this.description);