Oracle Show Table

Oracle Show Table
Este tutorial de dica do Linux discutirá como usar os dicionários de dados do Oracle para mostrar as tabelas pertencentes a um determinado usuário, tabelas acessíveis por um determinado usuário e todas as tabelas no sistema.

Dicionários de dados do Oracle

Ao contrário de outros bancos de dados SQL, como MySQL ou PostgreSQL, o Oracle não possui um comando independente que permite recuperar as tabelas de um determinado banco de dados.

Para mostrar as tabelas de um determinado banco de dados, temos que usar as visualizações do Oracle Data Dictionary.

No Oracle, um dicionário de dados refere-se a uma coleção de visualizações somente leitura que armazenam informações sobre um determinado banco de dados, incluindo esquemas, permissões de usuário, eventos, etc.

Embora os dicionários de dados sejam somente leitura, podemos consultar as informações armazenadas nelas, incluindo as tabelas.

Vamos explorar e aprender como podemos trabalhar com os dicionários de dados.

Oracle Show Tables de propriedade do usuário atual

O uso mais comum do comando Show Tables é listar as tabelas de propriedade do usuário atual.

Podemos usar uma consulta como mostrado abaixo:

Selecione Table_name de User_tables;

A consulta anterior deve retornar todos os nomes de tabela de propriedade do usuário atual. Um exemplo de saída é fornecido abaixo:

Oracle Show Tables acessível pelo usuário atual

Em alguns casos, você pode mostrar todas as tabelas acessíveis pelo usuário atual, apesar das permissões alocadas.

Nesse caso, podemos consultar o All_Tables Data Dictionary, como mostrado na seguinte declaração:

Selecione Table_name, proprietário de all_tables onde proprietário = 'hr' ordem por table_name, proprietário;

Esta solicitação lista todas as tabelas acessíveis pelo usuário atual, conforme mostrado na seguinte saída:

Oracle liste todas as tabelas

Em casos muito mínimos, pode ser necessário listar todas as vezes em todo o sistema. Para isso, você deve consultar o dicionário de dados DBA_TABLES.

É bom lembrar que solicitar uma extensa coleção de dados com um parâmetro de classificação pode ter um desempenho colossal em incurência. Use com cuidado.

Selecione Table_name, proprietário de dba_tables;

Isso deve despejar todas as tabelas do sistema, conforme mostrado na seguinte saída de amostra:

Nota: Em alguns casos, você pode receber um erro como:

[42000] [942] ORA-00942: Tabela ou exibição não existe
Posição: 30

Se isso acontecer, pode ser necessário entrar em contato com o administrador do banco de dados para conceder permissões no dicionário DBA_TABLES, selecione qualquer permissão de dicionário ou select_catalog_role.

Conclusão

Nesta postagem, você aprendeu vários métodos e técnicas para listar as tabelas no servidor Oracle. Por exemplo, você aprendeu a listar as tabelas e as tabelas DBA.