Het Oracle-equivalent voor information_schema.COLUMNS
is USER_TAB_COLS
voor tabellen die eigendom zijn van de huidige gebruiker, ALL_TAB_COLS
of DBA_TAB_COLS
voor tabellen die eigendom zijn van alle gebruikers.
Tabelruimte is niet gelijk aan een schema, en u hoeft ook niet de naam van de tabelruimte op te geven.
Het opgeven van het schema/de gebruikersnaam zou handig zijn als u ALL_TAB_COLS
wilt opvragen of DBA_TAB_COLS
voor kolommen OF tabellen die eigendom zijn van een specifieke gebruiker. in jouw geval zou ik me voorstellen dat de zoekopdracht er ongeveer zo uit zou zien:
String sqlStr= "
SELECT column_name
FROM all_tab_cols
WHERE table_name = 'USERS'
AND owner = '" +_db+ "'
AND column_name NOT IN ( 'PASSWORD', 'VERSION', 'ID' )"
Houd er rekening mee dat u met deze aanpak het risico loopt SQL-injectie te krijgen.
BEWERKEN: De tabel- en kolomnamen in hoofdletters aangezien deze in Oracle meestal hoofdletters zijn; ze zijn alleen kleine letters of hoofdletters als ze zijn gemaakt met dubbele aanhalingstekens eromheen.