Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens ORA-00904 : « identifiant invalide » lors de l'interrogation de ma table Oracle ?
Erreur ORA-00904 : identifiant non valide
Problème :
Lors de la tentative de récupération de données à partir d'une table utilisant une simple requête où la clause WHERE inclut une condition sur une valeur de colonne, vous rencontrez le Erreur ORA-00904 indiquant un identifiant invalide.
Par exemple, vous avez une table nommée reg1 créée avec les colonnes suivantes :
create table reg1 ( fname varchar2(30), lname varchar2(30), addr varchar2(30), mail varchar2(30), occu varchar2(30), uname varchar2(30), passwd varchar2(30) );
Cependant, lors de l'exécution d'une requête pour récupérer le prénom (fname) et le nom de famille (lname) d'un utilisateur avec le nom d'utilisateur 'bbb' comme :
select fname, lname from reg1 where uname="bbb";
Vous recevez le erreur ORA-00904 : "bbb": identifiant non valide.
Réponse :
L'erreur se produit car la valeur avec laquelle vous comparez dans la clause WHERE n'est pas entourée guillemets simples. Dans Oracle, lorsque vous comparez des valeurs de chaîne, vous devez les mettre entre guillemets simples pour indiquer qu'il s'agit de littéraux.
Pour résoudre le problème, ajoutez simplement des guillemets simples autour de la valeur « bbb » :
select fname, lname from reg1 where uname='bbb';
Avec cette correction, la requête réussira à récupérer les données de l'utilisateur portant le nom d'utilisateur « bbb », car la comparaison est désormais traitée correctement comme une chaîne littérale. comparaison.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!