Página 1 de 1

[Dica] Encontrar tabela que possui os campos x...

Enviado: Ter, 21 Jun 2005 11:00 am
por dr_gori
Esses dias eu tive que descobrir o nome de uma tabela. Eu só sabia o nome de 2 campos dessa tabela. Daí, fiz esse SQL pra descobrir isso.

O sql abaixo busca o nome das tabelas que tem os campos informados na cláusula Exists.

Selecionar tudo

SELECT A.TABLE_NAME
FROM USER_TABLES A
WHERE EXISTS (SELECT 1 FROM USER_TAB_COLUMNS 
              WHERE TABLE_NAME=A.TABLE_NAME AND COLUMN_NAME = 'seu_campo'
             )
  AND EXISTS (SELECT 1 FROM USER_TAB_COLUMNS 
              WHERE TABLE_NAME=A.TABLE_NAME AND COLUMN_NAME = 'seu_campo'
             )          
Exemplo:

Selecionar tudo

SQL> SELECT A.TABLE_NAME
  2  FROM USER_TABLES A
  3  WHERE EXISTS (SELECT 1 FROM USER_TAB_COLUMNS 
  4                WHERE TABLE_NAME=A.TABLE_NAME AND COLUMN_NAME = 'PC_TAXA'
  5               )
  6    AND EXISTS (SELECT 1 FROM USER_TAB_COLUMNS 
  7                WHERE TABLE_NAME=A.TABLE_NAME AND COLUMN_NAME = 'FL_TIPO_TAXA'
  8               )          
  9    AND EXISTS (SELECT 1 FROM USER_TAB_COLUMNS 
 10               WHERE TABLE_NAME=A.TABLE_NAME AND COLUMN_NAME LIKE '%UF%' 
 11               )     
 12  /

TABLE_NAME
------------------------------
TB_TARIFA_RCTRC
TB_TARIFA_RR
TB_TAXA_ESPECIAL

3 rows selected.

SQL>

Re: [Dica] Encontrar tabela que possui os campos x...

Enviado: Ter, 21 Jun 2005 11:11 am
por Analista
+ simples:

Selecionar tudo

SELECT TABLE_NAME FROM USER_TAB_COLUMNS 
WHERE COLUMN_NAME = '<nome do meu campo';
[]'s

Enviado: Ter, 21 Jun 2005 11:16 am
por dr_gori
Fiz isso, mas apareceu muuuuitas tabelas.
Eu tinha que filtrar usando 2 campos! :-)

Tipo, todas tabelas que tem o campo X e o Y...sacou?

Enviado: Ter, 21 Jun 2005 11:26 am
por Analista
Show de bola!
É por isso que eu gosto deste fórum!

:D