Oracle
 sql >> Base de données >  >> RDS >> Oracle

Requête Oracle pour récupérer les noms de colonne

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.