Wie rufe ich Spaltennamen aus einer Oracle-Tabelle ab?
In Oracle 11g und höher können Sie die Tabelle USER_TAB_COLS
verwenden, um die Spaltennamen von Tabellen abzurufen, die dem aktuellen Benutzer gehören. Für Tabellen, die allen Benutzern gehören, verwenden Sie ALL_TAB_COLS
- oder DBA_TAB_COLS
-Tabellen.
Beispielabfrage
Um bestimmte Spalten auszuschließen und ein Schema für die Tabelle „Benutzer“ anzugeben, können Sie die folgende Abfrage verwenden:
<code class="language-sql">SELECT column_name FROM all_tab_cols WHERE table_name = 'USERS' AND owner = '<schema_name>' AND column_name NOT IN ('PASSWORD', 'VERSION', 'ID')</code>
Hinweis: Tabellen- und Spaltennamen werden in Oracle normalerweise in Großbuchstaben dargestellt. Bitte achten Sie darauf, auch in Ihren Abfragen Großbuchstaben zu verwenden.
Tabellenbereich und Schema
In Oracle sind Tablespaces und Schemas nicht gleichwertig. Ein Tablespace bezieht sich auf den physischen Speicherort von Tabellen, während ein Schema eine logische Gruppierung von Datenbankobjekten ist, die einem Benutzer oder einer Rolle gehören. Daher müssen Sie den Tablespace-Namen in der Abfrage nicht angeben.
Generisches HQL-Äquivalent
Die obige Oracle-Abfrage hat kein direktes HQL-Äquivalent. Sie können jedoch die Annotationen TableSchema
und TableColumn
in JPA verwenden, um das auszuschließende Muster und die auszuschließenden Spalten anzugeben.
Das obige ist der detaillierte Inhalt vonWie rufe ich Spaltennamen aus einer Oracle-Tabelle ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!