Categorias
Oracle

tio,onde que eu vejo isso no Oracle?

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. =)