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>
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>
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>
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!