Heim > Datenbank > MySQL-Tutorial > Warum führt meine Oracle-Abfrage zu ORA-00904: Ungültiger Bezeichner?

Warum führt meine Oracle-Abfrage zu ORA-00904: Ungültiger Bezeichner?

Barbara Streisand
Freigeben: 2025-01-17 08:42:09
Original
864 Leute haben es durchsucht

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

ORA-00904: Fehler beim Parsen eines ungültigen Bezeichners

Problembeschreibung:

Beim Ausführen einer Inner-Join-Abfrage in der Oracle-Datenbank tritt der folgende Fehler auf:

<code class="language-sql">ORA-00904: "TEAM"."DEPARTMENT_CODE": invalid identifier</code>
Nach dem Login kopieren

Grundursache:

Die Hauptursache des Fehlers ist die Verwendung doppelter Anführungszeichen im Tabellennamen und Spaltennamen in der Abfrage. Oracle Database erfordert, dass Objektnamen ausschließlich in Großbuchstaben oder ohne Anführungszeichen angegeben werden.

Lösung:

Um dieses Problem zu beheben, entfernen Sie die doppelten Anführungszeichen aus den Tabellen- und Spaltennamen in der Abfrage und verwenden Sie auch keine doppelten Anführungszeichen, wenn Sie die Tabelle im DDL-Skript erstellen.

Die korrekte SQL-Abfrage lautet wie folgt:

<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>
Nach dem Login kopieren

Vermeiden Sie die Verwendung doppelter Anführungszeichen in DDL-Skripten:

Best Practice besteht darin, die Verwendung doppelter Anführungszeichen in DDL-Skripten zu vermeiden. Es wird empfohlen, einen Namen ausschließlich in Großbuchstaben zu verwenden:

<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>
Nach dem Login kopieren

Dieser Ansatz bietet mehr Flexibilität und vermeidet potenzielle Fehler aufgrund inkonsistenter Schreibweise. Beachten Sie, dass die redundanten " "-Spalten in der Beispiel-DDL entfernt wurden.

Das obige ist der detaillierte Inhalt vonWarum führt meine Oracle-Abfrage zu ORA-00904: Ungültiger Bezeichner?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage