L'équivalent Oracle pour information_schema.COLUMNS
est USER_TAB_COLS
pour les tables appartenant à l'utilisateur actuel, ALL_TAB_COLS
ou DBA_TAB_COLS
pour les tables appartenant à tous les utilisateurs.
Le tablespace n'est pas équivalent à un schéma, vous n'avez pas non plus à fournir le nom du tablespace.
Fournir le schéma/nom d'utilisateur serait utile si vous souhaitez interroger ALL_TAB_COLS
ou DBA_TAB_COLS
pour les colonnes des tables détenues par un utilisateur spécifique. dans votre cas, j'imagine que la requête ressemblerait à :
String sqlStr= "
SELECT column_name
FROM all_tab_cols
WHERE table_name = 'USERS'
AND owner = '" +_db+ "'
AND column_name NOT IN ( 'PASSWORD', 'VERSION', 'ID' )"
Notez qu'avec cette approche, vous risquez une injection SQL.
MODIF : Mettre en majuscule les noms de table et de colonne car ceux-ci sont généralement en majuscule dans Oracle ; ils sont uniquement en minuscules ou mixtes s'ils sont créés avec des guillemets doubles autour d'eux.