Maison >base de données >tutoriel mysql >Comment corriger l'erreur ORA-00904 « Identifiant invalide » dans Oracle SQL ?
Dépannage de l'erreur Oracle « ORA-00904 : Identifiant invalide »
L'erreur frustrante « ORA-00904 : Identifiant invalide » dans les bases de données Oracle provient généralement d'un référencement incorrect des objets de la base de données (tables ou colonnes). Cela implique souvent le respect de la casse et l'utilisation de guillemets doubles.
Examinons un exemple de requête de jointure interne :
<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>
L'erreur survient car la table "Team" et ses colonnes ("DEPARTMENT_CODE" et "Department_Name") peuvent être incohérentes. La nature sensible à la casse d'Oracle exige une correspondance exacte lorsque des guillemets doubles sont utilisés lors de la création d'un objet. L'utilisation de "Department_Code" au lieu de "DEPARTMENT_CODE" déclenchera l'erreur ORA-00904 :
<code class="language-sql">SQL> select count(*) from PS_TBL_DEPARTMENT_DETAILS where Department_Code = 'BAH' / ERROR at line 2: ORA-00904: "DEPARTMENT_CODE": invalid identifier SQL> select count(*) from PS_TBL_DEPARTMENT_DETAILS where "Department_Code" = 'BAH' / COUNT(*) ---------- 0 SQL></code>
Éviter les guillemets doubles lors de la création de la table simplifie le référencement des objets, permettant un accès insensible à la casse :
<code class="language-sql">create table PS_TBL_DEPARTMENT_DETAILS ( company_code VARCHAR2(255), company_name VARCHAR2(255), Cost_Center_Number VARCHAR2(255)) ; select * from ps_tbl_department_details</code>
Bonne pratique : minimisez l'utilisation des guillemets doubles dans les scripts DDL pour éviter les problèmes de référencement sensibles à la casse et simplifier l'accès aux objets de base de données.
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!