Oracle-motsvarigheten för information_schema.COLUMNS
är USER_TAB_COLS
för tabeller som ägs av den aktuella användaren, ALL_TAB_COLS
eller DBA_TAB_COLS
för tabeller som ägs av alla användare.
Tablespace är inte likvärdigt med ett schema, du måste inte heller ange tabellutrymmets namn.
Att tillhandahålla schemat/användarnamnet skulle vara användbart om du vill fråga ALL_TAB_COLS
eller DBA_TAB_COLS
för kolumner AV tabeller som ägs av en specifik användare. i ditt fall skulle jag föreställa mig att frågan skulle se ut ungefär så här:
String sqlStr= "
SELECT column_name
FROM all_tab_cols
WHERE table_name = 'USERS'
AND owner = '" +_db+ "'
AND column_name NOT IN ( 'PASSWORD', 'VERSION', 'ID' )"
Observera att med detta tillvägagångssätt riskerar du SQL-injektion.
EDIT: Tabell- och kolumnnamnen har versaler eftersom dessa vanligtvis är versaler i Oracle; de är bara gemener eller blandade versaler om de skapas med dubbla citattecken runt dem.