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 existeSe 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.