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. =)
Bom saber do seu blog. Vou virar freguês.
Tá bem, hein? Joguei “dicionario oracle user_tables” (sem aspas) no Google e esse post veio na primeira posição. Vai ser bem útil!!!
prezado,
parabens pelo post me ajudou consideravelmente…
Good Work!