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

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

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>
Analista
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 24
Registrado em: Qua, 13 Abr 2005 5:09 pm
Localização: Volta Redonda - RJ
Grata,

Analista de Sistemas

+ simples:

Selecionar tudo

SELECT TABLE_NAME FROM USER_TAB_COLUMNS 
WHERE COLUMN_NAME = '<nome do meu campo';
[]'s
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

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?
Analista
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 24
Registrado em: Qua, 13 Abr 2005 5:09 pm
Localização: Volta Redonda - RJ
Grata,

Analista de Sistemas

Show de bola!
É por isso que eu gosto deste fórum!

:D
Responder
  • Informação