Dépannage ORA-00904 : identifiant non valide dans les jointures Oracle SQL
Les requêtes de jointure Oracle SQL peuvent parfois générer l'erreur ORA-00904: invalid identifier
. Cette erreur signifie un problème avec les identifiants (noms de table ou de colonne) utilisés dans votre requête.
Cause fondamentale :
Cette erreur résulte généralement du référencement d’objets de base de données inexistants ou mal identifiés. Les coupables courants incluent les fautes de frappe dans les noms de tables ou de colonnes, ou l'utilisation d'une casse incorrecte.
Exemple illustratif :
Considérez cette requête :
<code class="language-sql">SELECT Employee.EMPLID as EmpID, Employee.FIRST_NAME AS Name, Team.DEPARTMENT_CODE AS TeamID, Team.Department_Name AS teamname FROM PS_TBL_EMPLOYEE_DETAILS Employee INNER JOIN PS_TBL_DEPARTMENT_DETAILS Team ON Team.DEPARTMENT_CODE = Employee.DEPTID;</code>
Cette requête peut produire l'erreur ORA-00904
car « Équipe » est placé entre guillemets doubles. Oracle traite les identifiants entre guillemets comme étant sensibles à la casse. Ainsi, "Team.DEPARTMENT_CODE" diffère de "team.DEPARTMENT_CODE".
Résolution :
Pour résoudre ce problème, vérifiez tous les identifiants de votre requête par rapport au schéma de base de données réel. Portez une attention particulière à l'orthographe, aux majuscules et à la présence de guillemets doubles inutiles. Oracle n'est pas sensible à la casse par défaut, sauf si vous utilisez des guillemets doubles.
La version corrigée de l'exemple de requête serait :
<code class="language-sql">SELECT Employee.EMPLID as EmpID, Employee.FIRST_NAME AS Name, Team.DEPARTMENT_CODE AS TeamID, Team.Department_Name AS teamname FROM PS_TBL_EMPLOYEE_DETAILS Employee INNER JOIN PS_TBL_DEPARTMENT_DETAILS Team ON Team.DEPARTMENT_CODE = Employee.DEPTID;</code>
(Remarque : bien que l'exemple ne montre aucune différence apparente, l'original pourrait avoir une incompatibilité de casse dans le schéma de base de données qui n'est pas visible ici. Vérifiez toujours les noms d'objets de votre base de données.) Suppression Les guillemets inutiles sont également une étape clé.
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!