Oracle
 sql >> Database >  >> RDS >> Oracle

Query Oracle per recuperare i nomi delle colonne

L'equivalente Oracle per information_schema.COLUMNS è USER_TAB_COLS per le tabelle di proprietà dell'utente corrente, ALL_TAB_COLS o DBA_TAB_COLS per le tabelle di proprietà di tutti gli utenti.

Il tablespace non è equivalente a uno schema, né devi fornire il nome del tablespace.

Fornire lo schema/nome utente sarebbe utile se si desidera interrogare ALL_TAB_COLS o DBA_TAB_COLS per colonne DI tabelle di proprietà di un utente specifico. nel tuo caso, immagino che la query sia simile a:

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

Tieni presente che con questo approccio rischi l'iniezione di SQL.

MODIFICA: In maiuscolo i nomi delle tabelle e delle colonne poiché sono tipicamente maiuscoli in Oracle; sono solo minuscole o miste se create con virgolette doppie.