Oracle-ækvivalenten for information_schema.COLUMNS
er USER_TAB_COLS
for tabeller, der ejes af den aktuelle bruger, ALL_TAB_COLS
eller DBA_TAB_COLS
for borde, der ejes af alle brugere.
Tablespace svarer ikke til et skema, og du skal heller ikke angive tablespace-navnet.
Det ville være nyttigt at angive skemaet/brugernavnet, hvis du vil forespørge ALL_TAB_COLS
eller DBA_TAB_COLS
for kolonner AF tabeller, der ejes af en bestemt bruger. i dit tilfælde kunne jeg forestille mig, at forespørgslen ville se nogenlunde sådan ud:
String sqlStr= "
SELECT column_name
FROM all_tab_cols
WHERE table_name = 'USERS'
AND owner = '" +_db+ "'
AND column_name NOT IN ( 'PASSWORD', 'VERSION', 'ID' )"
Bemærk, at med denne tilgang risikerer du SQL-injektion.
EDIT: Tabel- og kolonnenavne med store bogstaver, da disse typisk er store bogstaver i Oracle; de er kun små eller blandede bogstaver, hvis de er oprettet med dobbelte anførselstegn omkring dem.