Página Inicial > Oracle > tio,onde que eu vejo isso no 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. =)

Categories: Oracle Tags:
  1. 14, maio, 2007 em 18:19 | #1

    Bom saber do seu blog. Vou virar freguês.

  2. 15, maio, 2007 em 17:02 | #2

    Tá bem, hein? Joguei “dicionario oracle user_tables” (sem aspas) no Google e esse post veio na primeira posição. Vai ser bem útil!!! ;)

  3. 19, outubro, 2009 em 15:28 | #3

    prezado,

    parabens pelo post me ajudou consideravelmente…

    Good Work!

  1. Nenhum trackback ainda.