Maison > base de données > tutoriel mysql > Comment corriger l'erreur ORA-00904 « Identifiant invalide » dans Oracle SQL ?

Comment corriger l'erreur ORA-00904 « Identifiant invalide » dans Oracle SQL ?

Susan Sarandon
Libérer: 2025-01-17 08:47:13
original
179 Les gens l'ont consulté

How to Fix the ORA-00904

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>
Copier après la connexion

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>
Copier après la connexion

É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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal