Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Consulta Oracle para buscar nomes de colunas


O equivalente Oracle para information_schema.COLUMNS é USER_TAB_COLS para tabelas de propriedade do usuário atual, ALL_TAB_COLS ou DBA_TAB_COLS para tabelas de propriedade de todos os usuários.

O espaço de tabela não é equivalente a um esquema, nem você precisa fornecer o nome do espaço de tabela.

Fornecer o esquema/nome de usuário seria útil se você deseja consultar ALL_TAB_COLS ou DBA_TAB_COLS para colunas de tabelas pertencentes a um usuário específico. no seu caso, imagino que a consulta seria algo como:
String sqlStr= "
SELECT column_name
  FROM all_tab_cols
 WHERE table_name = 'USERS'
   AND owner = '" +_db+ "'
   AND column_name NOT IN ( 'PASSWORD', 'VERSION', 'ID' )"

Observe que, com essa abordagem, você corre o risco de injeção de SQL.

EDITAR: Coloque os nomes de tabela e coluna em maiúsculas, pois normalmente são maiúsculas no Oracle; elas são apenas minúsculas ou mistas se criadas com aspas duplas em torno delas.