Maison > base de données > tutoriel mysql > Pourquoi ma requête Oracle aboutit-elle à ORA-00904 : identifiant invalide ?

Pourquoi ma requête Oracle aboutit-elle à ORA-00904 : identifiant invalide ?

Barbara Streisand
Libérer: 2025-01-17 08:42:09
original
864 Les gens l'ont consulté

Why Does My Oracle Query Result in ORA-00904: Invalid Identifier?

ORA-00904 : Analyse d'erreur d'identifiant non valide

Description du problème :

Lors de l'exécution d'une requête de jointure interne dans la base de données Oracle, l'erreur suivante se produit :

<code class="language-sql">ORA-00904: "TEAM"."DEPARTMENT_CODE": invalid identifier</code>
Copier après la connexion

Cause fondamentale :

La cause première de l'erreur est l'utilisation de guillemets doubles dans le nom de la table et le nom de la colonne dans la requête. Oracle Database exige que les noms d'objet soient en lettres majuscules ou sans guillemets.

Solution :

Pour résoudre ce problème, supprimez les guillemets doubles des noms de table et de colonne dans la requête et n'utilisez pas non plus de guillemets doubles lors de la création de la table dans le script DDL.

La requête SQL correcte est la suivante :

<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

Évitez d'utiliser des guillemets doubles dans les scripts DDL :

La meilleure pratique consiste à éviter d'utiliser des guillemets doubles dans les scripts DDL. Il est recommandé d'utiliser un nom en majuscules :

<code class="language-sql">CREATE TABLE HRMS.PS_TBL_DEPARTMENT_DETAILS
(
  Company_Code VARCHAR2(255),
  Company_Name VARCHAR2(255),
  Sector_Code VARCHAR2(255),
  Sector_Name VARCHAR2(255),
  Business_Unit_Code VARCHAR2(255),
  Business_Unit_Name VARCHAR2(255),
  Department_Code VARCHAR2(255),
  Department_Name VARCHAR2(255),
  HR_ORG_ID VARCHAR2(255),
  HR_ORG_Name VARCHAR2(255),
  Cost_Center_Number VARCHAR2(255)
)</code>
Copier après la connexion

Cette approche offre une plus grande flexibilité et évite les erreurs potentielles dues à un boîtier incohérent. Notez que les colonnes " " redondantes dans l'exemple DDL ont été supprimé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