Temos um grande banco de dados Oracle com muitas tabelas. Existe uma maneira de consultar ou pesquisar para descobrir se há alguma tabela com determinados nomes de coluna?
O IE mostra-me todas as tabelas que possuem as colunas: id, fname, lname, address
Detalhe que esqueci de acrescentar: preciso ser capaz de pesquisar em diferentes esquemas. O que devo usar para conectar não possui as tabelas que preciso pesquisar.
column_name
+like
se não tiver certeza do nome exato:select owner, table_name, column_name from all_tab_columns where column_name like 'someField%';
Os dados que você deseja estão na tabela de metadados "cols":
Este lhe dará uma lista de tabelas que têm todas as colunas que você deseja:
Para fazer isso em um esquema diferente, basta especificar o esquema na frente da tabela, como em
Se quiser combinar as pesquisas de muitos esquemas em um resultado de saída, você pode fazer isso:
fonte
SELECT * FROM COLS
não retorna nada do meu esquema. Eu só tenho privilégios selecionados nas tabelas. A seleção não seria suficiente para permitir a visualização via COLS?select * from schema1.cols
me dá umtable or view does not exist
erro. Isso teria a ver com a forma como os privilégios são configurados?PARA pesquisar um nome de coluna, use a consulta abaixo se você souber o nome da coluna com precisão:
PARA pesquisar um nome de coluna, se você não souber a coluna exata, use a seguir:
fonte
Aqui está um que salvamos em findcol.sql para que possamos executá-lo facilmente de dentro do SQLPlus
fonte