Essa é a frase que eu escuto algumas vezes quando trabalho e o pessoal se espanta por 1 minuto depois eu ter a resposta.
Algumas eu sei de cabeça, mas o mais importante é que se eu não sei, eu sei o SQL que responde minha pergunta.
E tudo isso vem de consultas ao dicionário de dados do Oracle.
Primeiro vamos começar com as perguntas mais comuns:
– quais são as minhas tabelas?
SELECT * FROM USER_TABLES
– quais são todos os meus objetos?
SELECT * FROM USER_OBJECTS
– quais são as tabelas que eu acesso?
SELECT * FROM ALL_TABLES
– quais são os privilégios da minha sessão?
SELECT * FROM SESSION_PRIVS
– como saber a versão do meu banco de dados?
SELECT * FROM V$VERSION
Vamos agora a uma breve explicação do dicionário de dados do Oracle: desde os primórdios do Oracle 6 (quando comecei a trabalhar com isso) na criação de um banco de dados, o dicionário de dados era criado dentro de um usuário chamado SYS.
Dentro dele temos tabelas que catalogam o banco de dados inteiro. Por exemplo: todos os objetos do banco são cadastrados numa tabela chamada OBJ$, e dela enxergamos algumas views citadas anteriormente: USER_OBJECTS, ALL_OBJECTS e DBA_OBJECTS.
A grande maioria das views do dicionário de dados se dividem em 4 tipos :
USER – são referentes ao usuário OWNER possui – Exemplo: USER_VIEWS
ALL – são referentes ao usuário OWNER pode acessar – Exemplo: ALL_VIEWS
DBA – são referentes ao banco de dados inteiro – Exemplo: DBA_VIEWS
V$ – são informações voláteis do banco – Exemplo: V$OPTION
Agora, e se você precisar de algo meio incomum, como por exemplo:
– onde vejo informações de índices?
– onde vejo o espaço livre do banco?
– onde vejo informações de views?
é mais fácil você procurar no catálogo do Oracle: a view DICTIONARY ou o sinônimo DICT.
Eu fiz um simples script para saber onde estão as coisas:
SELECT * FROM dict WHERE lower(comments) like '%'||'&busca'||'%'
Troque o &busca pelo que procura.
Exemplo de busca por sequences , dá o resultado:
TABLE_NAME COMMENTS ------------------------------ --------------------------------------------------------------------- ALL_CATALOG All tables, views, synonyms, sequences accessible to the user ALL_SEQUENCES Description of SEQUENCEs accessible to the user USER_CATALOG Tables, Views, Synonyms and Sequences owned by the user USER_SEQUENCES Description of the user's own SEQUENCEs SEQ Synonym for USER_SEQUENCES
Guardem esse script, ele é melhor do que decorar o dicionário do Oracle inteiro na cabeça =)
Fernando Boaglio, para a comunidade. =)