Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle-Abfrage zum Abrufen von Spaltennamen

Das Oracle-Äquivalent für information_schema.COLUMNS ist USER_TAB_COLS für Tabellen, die dem aktuellen Benutzer gehören, ALL_TAB_COLS oder DBA_TAB_COLS für Tabellen, die allen Benutzern gehören.

Tablespace ist nicht gleichbedeutend mit einem Schema, noch müssen Sie den Tablespace-Namen angeben.

Die Angabe des Schemas/Benutzernamens wäre hilfreich, wenn Sie ALL_TAB_COLS abfragen möchten oder DBA_TAB_COLS für Spalten von Tabellen, die einem bestimmten Benutzer gehören. In Ihrem Fall würde ich mir vorstellen, dass die Abfrage in etwa so aussehen würde:

String sqlStr= "
SELECT column_name
  FROM all_tab_cols
 WHERE table_name = 'USERS'
   AND owner = '" +_db+ "'
   AND column_name NOT IN ( 'PASSWORD', 'VERSION', 'ID' )"

Beachten Sie, dass Sie bei diesem Ansatz das Risiko einer SQL-Einschleusung eingehen.

BEARBEITEN: Großbuchstaben der Tabellen- und Spaltennamen, da diese in Oracle normalerweise großgeschrieben werden; sie sind nur klein- oder gemischt geschrieben, wenn sie mit doppelten Anführungszeichen um sie herum erstellt werden.