Você está na página 1de 32

Faculdade Impacta Tecnologia

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

Gerenciando Objetos
com Views do Dicionário de Dados

a
) has
l ฺ c om ideฺ
m ai t Gu
@ g en
p ai Stud
o
l s am this
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
a
a mp ble lic
i u s S fera
ic s
Vin n-tran
no
Faculdade Impacta Tecnologia

Objetivos
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

Ao concluir esta lição, você será capaz de:


• Usar views do dicionário de dados para pesquisar dados
sobre seus objetos
• Consultar várias views do dicionário de dados

a
) has
l ฺ c om ideฺ
m ai t Gu
@ g en
p ai Stud
o
l s am this
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
a
Objetivos
a mp ble lic
i u sS
Nesta lição, você
f e raas views do dicionário de dados. Aprenderá que as views do
conhecerá

V i nicde dados
dicionário
t r a s ser usadas para recuperar metadados e criar relatórios sobre seus
npodem
-
objetos de esquema.
non

Oracle Database 11g: Fundamentos de SQL II 3 - 2


Faculdade Impacta Tecnologia

Agenda da Lição
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

• Introdução ao dicionário de dados


• Consultando views do dicionário de dados sobre:
– Informações da tabela
– Informações da coluna
– Informações de constraint
• Consultando views do dicionário de dados sobre:
– Informações da view
– Informações de sequência a
– Informações de sinônimo
) has
– Informações do índice
l ฺ c om ideฺ
ai t Gu
• Adicionando um comentário a uma tabelagemconsultando
views de dicionário sobre informações i o @ d en
de comentário
u
m pa is St
s l sa e th
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
S am able
i c ius nsfer
Vin n-tra
no

Oracle Database 11g: Fundamentos de SQL II 3 - 3


Faculdade Impacta Tecnologia

Dicionário de Dados
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

Servidor Oracle

Tabelas que Views de dicionário


contêm dados de dados:
comerciais: DICTIONARY
EMPLOYEES USER_OBJECTS
s a
DEPARTMENTS USER_TABLES a
)h ฺ
LOCATIONS m
USER_TAB_COLUMNS
co uide
JOB_HISTORY
i
...l ฺ
...
g ma nt G
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
Dicionário de Dadosmp
S a able
i u s são
As tabelas do usuário
f e rcriadas pelo usuário e contêm dados comerciais, como EMPLOYEES.
Há outro
i c andestabelas e views no banco de dados Oracle conhecido como dicionário de
niconjunto
V -tr é criado e mantido pelo servidor Oracle e contém informações sobre o
dados. Essenconjunto
o
n dados. O dicionário de dados é estruturado em tabelas e views, como outros dados de
banco de
banco de dados. Não é apenas a central do dicionário de dados de cada banco de dados Oracle,
mas é uma ferramenta importante para todos os usuários, desde os usuários finais até designers
de aplicação e administradores de banco de dados.
O dicionário de dados é acessado por meio de instruções SQL. Como o dicionário de dados é
somente para leitura, você só pode consultar suas tabelas e views.
Podem ser consultadas views do dicionário baseadas nas tabelas do dicionário para localizar
informações como:
• Definições de todos os objetos de esquema no banco de dados (tabelas, views, índices,
sinônimos, sequências, procedures, functions, packages, triggers etc.)
• Valores padrão para colunas
• Informações de constraint de integridade
• Nomes de usuários Oracle
• Privilégios e funções que cada usuário recebeu
• Outras informações gerais do banco de dados

Oracle Database 11g: Fundamentos de SQL II 3 - 4


Faculdade Impacta Tecnologia

Estrutura do Dicionário de Dados


Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

Servidor Oracle

Consiste em:
– Tabelas-base
– Views acessíveis ao usuário a
) has
l ฺ c om ideฺ
m ai t Gu
@ g en
p ai Stud
o
l s am this
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
a lic
Estrutura do Dicionário
a mpdebDados
l e
As tabelas-base S raarmazenam informações sobre o banco de dados associado.
ssubjacentes
Somente
i u fe deve gravar e ler essas tabelas. Você raramente as acessa
ocservidornOracle
i s
n
Vi n-tra
diretamente.
no
Há várias views que resumem e exibem informações armazenadas nas tabelas-base do dicionário
de dados. Essas views decodificam os dados da tabela-base em informações úteis (como nomes
de usuário ou de tabela) usando joins e cláusulas WHERE para simplificar as informações. A
maioria dos usuários recebe acesso às views, e não às tabelas-base.
O usuário Oracle SYS é proprietário de todas as views do dicionário de dados de tabelas-base e
acessíveis ao usuário. Um usuário Oraclenunca deve alterar (ATUALIZAR, DELETAR nem
INSERIR) linhas ou objetos de esquema contidos no esquema SYS, pois essa atividade pode
comprometer a integridade de dados.

Oracle Database 11g: Fundamentos de SQL II 3 - 5


Faculdade Impacta Tecnologia

Estrutura do Dicionário de Dados


Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

Convenção de nomeação de view:

Prefixo da View Objetivo


USER Views do usuário (o que está em seu esquema;
o que pertence a você)
ALL View expandida do usuário (o que você pode
acessar)
DBA View do administrador do banco de dados (o
que está nos esquemas de todos)
V$ Dados relacionados ao desempenho a
a s
m )h ฺ
i l ฺ co uide
g ma nt G
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a Dados e
p l i c
Estrutura do Dicionário
S am ablede (continuação)
O dicionáriou desdados ée
itrês f r
constituído de conjuntos de views. Em muitos casos, um conjunto
i i
consistenemc n
views
a s contendo informações semelhantes e distintas entre si por seus prefixos.
V t r
Por exemplo,-há uma view nomeada USER_OBJECTS, outra, ALL_OBJECTS e uma terceira,
non
DBA_OBJECTS.
Essas três views contêm informações semelhantes sobre os objetos no banco de dados, exceto
pelo escopo, que é diferente. USER_OBJECTS contém informações sobre objetos pertencentes
ou criados por você. ALL_OBJECTS contém informações sobre todos os objetos aos quais você
possui acesso. DBA_OBJECTS contém informações sobre todos os objetos pertencentes a todos
os usuários. Para views prefixadas com ALL ou DBA, geralmente há uma coluna adicional na
view nomeada OWNER para identificar o proprietário do objeto.
Há também um conjunto de views prefixado com v$. Essas views são dinâmicas e contém
informações sobre desempenho. As tabelas dinâmicas de desempenho não são tabelas reais e
elas não devem ser acessadas pela maioria dos usuários. Entretanto, os administradores do banco
de dados podem consultar e criar views nas tabelas e conceder acesso a essas views a outros
usuários. Este curso não aborda detalhes sobre essas views.

Oracle Database 11g: Fundamentos de SQL II 3 - 6


Faculdade Impacta Tecnologia

Como Usar Views de Dicionário


Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

Comece com DICTIONARY. Ela contém nomes e descrições


das tabelas e views de dicionário.
DESCRIBE DICTIONARY

SELECT * a
FROM dictionary
) has
WHERE table_name = 'USER_OBJECTS';
l ฺ c om ideฺ
m ai t Gu
@ g en
p ai Stud
o
l s am this
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
Como Usar Views dem
a
p e lic
Dicionário
s
a bl de dicionário, você pode usar a view DICTIONARY. Ela
Scom asraviews
Para se familiarizar
contémnoicnome e an s fe curta de cada view de dicionário à qual você possui acesso.
iu descrição
Vi n-trconsultas
É possível criar
a
para pesquisar informações sobre um nome de view específico ou
no
pesquisar uma palavra ou frase na coluna COMMENTS. No exemplo mostrado abaixo, é descrita
a view DICTIONARY. Ela possui duas colunas. A instrução SELECT recupera informações
sobre a view de dicionário USER_OBJECTS. A view USER_OBJECTS contém informações
sobre todos os objetos que pertencem a você.
Você pode criar consultas para pesquisar uma palavra ou frase na coluna COMMENTS. Por
exemplo, a consulta a seguir retorna os nomes de todas as views que você pode acessar em que a
coluna COMMENTS contém a palavra colunas:
SELECT table_name
FROM dictionary
WHERE LOWER(comments) LIKE '%columns%';
Observação: Os nomes no dicionário de dados estão em maiúsculas.

Oracle Database 11g: Fundamentos de SQL II 3 - 7


Faculdade Impacta Tecnologia

Views USER_OBJECTS e ALL_OBJECTS


Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

USER_OBJECTS:
• Consulte USER_OBJECTS para ver todos os objetos que
pertencem a você
• É uma maneira útil para obter uma lista de todos os
nomes e tipos de objeto em seu esquema, além das
seguintes informações adicionais:
– Data de criação
– Data da última modificação
s a
– Status (válido ou inválido)
)h ฺa
ALL_OBJECTS: m
co uide
i l ฺ
a t aos
• Consulte ALL_OBJECTS para ver todos osm objetos G
g n
quais você possui acesso
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
Views USER_OBJECTS
S am able
e ALL_OBJECTS

i u s a fview
Você pode consultar
e r USER_OBJECTS para ver nomes e tipos de todos os objetos em seu
inicExistem
esquema.
VOBJECT_NAME:
- t r a s colunas nesta view:
nvárias
Nome do objeto
non

• OBJECT_ID: Número do objeto do dicionário
• OBJECT_TYPE: Tipo de objeto (como TABLE, VIEW, INDEX, SEQUENCE)
• CREATED: Timestamp da criação do objeto
• LAST_DDL_TIME: Timestamp da última modificação do objeto resultante de um comando
DDL (Data Definition Language)
• STATUS: Status do objeto (VALID, INVALID ou N/A)
• GENERATED: O nome deste sistema de objeto foi gerado? (Y|N)
Observação: Esta não é uma lista completa de colunas. Para obter uma lista completa, consulte
"USER_OBJECTS” no Oracle Database Reference.
Você também pode consultar a view ALL_OBJECTS para obter uma lista de todos os objetos
aos quais tem acesso.

Oracle Database 11g: Fundamentos de SQL II 3 - 8


Faculdade Impacta Tecnologia

View USER_OBJECTS
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

SELECT object_name, object_type, created, status


FROM user_objects
ORDER BY object_type;

s a
)h ฺa
m
co uide
i l ฺ
g ma nt G
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
View USER_OBJECTSmp
S a able
O exemplo mostra
usuário.nic s fertipos, datas de criação e status de todos os objetos pertencentes a este
ius nnomes,
Vi OBJECT_TYPE
A coluna n - tra contém os valores de TABLE, VIEW, SEQUENCE, INDEX,
no
PROCEDURE, FUNCTION, PACKAGE ou TRIGGER.
A coluna STATUS contém o valor VALID, INVALID ou N/A. Embora as tabelas sejam sempre
válidas, as views, os procedures, as functions, os packages e os triggers podem ser inválidos.
A View CAT
Para obter uma consulta e resultado simplificados, você pode consultar a view CAT. Essa view
contém apenas duas colunas: TABLE_NAME e TABLE_TYPE. Ela fornece os nomes de todos os
objetos INDEX, TABLE, CLUSTER, VIEW, SYNONYM, SEQUENCE ou UNDEFINED.
Observação: CAT é um sinônimo para USER_CATALOG—uma view que lista tabelas, views,
sinônimos e sequências pertencentes ao usuário.

Oracle Database 11g: Fundamentos de SQL II 3 - 9


Faculdade Impacta Tecnologia

Agenda da Lição
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

• Introdução ao dicionário de dados


• Consultando views do dicionário de dados sobre:
– Informações da tabela
– Informações da coluna
– Informações de constraint
• Consultando views do dicionário de dados sobre:
– Informações da view
– Informações de sequência a
– Informações de sinônimo
) has
– Informações do índice
l ฺ c om ideฺ
ai t Gu
• Adicionando um comentário a uma tabelagemconsultando
views de dicionário sobre informações i o @ d en
de comentário
u
m pa is St
s l sa e th
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
S am able
i c ius nsfer
Vin n-tra
no

Oracle Database 11g: Fundamentos de SQL II 3 - 10


Faculdade Impacta Tecnologia

Informações da Tabela
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

USER_TABLES:
DESCRIBE user_tables


SELECT table_name
FROM user_tables; s a
)h ฺ a
m
co uide
i l ฺ
g ma nt G
… a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
Informações da Tabela
am able
Você pode usarsa S r
view USER_TABLES para obter os nomes de todas as suas tabelas. A view
i u f e
i nic tracontém
USER_TABLES
V ns informações sobre suas tabelas. Além de fornecer o nome da tabela, ela
-
contém informações detalhadas sobre o armazenamento.
non
A view TABS é um sinônimo da view USER_TABLES. Ela pode ser consultada para obter uma
lista de tabelas pertencentes a você:
SELECT table_name
FROM tabs;
Observação: Para obter uma lista completa de colunas na view USER_TABLES, consulte
“USER_TABLES” no Oracle Database Reference.
Você também pode consultar a view ALL_TABLES para obter uma lista de todas as tabelas às
quais tem acesso.

Oracle Database 11g: Fundamentos de SQL II 3 - 11


Faculdade Impacta Tecnologia

Informações da Coluna
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

USER_TAB_COLUMNS:
DESCRIBE user_tab_columns

s a
)h ฺa
m
co uide
i l ฺ
… g ma nt G
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
Informações da Coluna
S am able
Consulte a view
i u s fer
USER_TAB_COLUMNS para localizar informações detalhadas sobre as colunas
ic aEmbora
em suasntabelas.
i ns a view USER_TABLES forneça informações sobre nomes de tabela e
V t r
- informações detalhadas sobre a coluna estão localizadas na view
armazenamento,
non
USER_TAB_COLUMNS.
Essa view contém informações como:
• Nomes de colunas
• Tipos de dados de coluna
• Comprimento dos tipos de dados
• Precisão e escala para colunas NUMBER
• Se os nulos são permitidos (Há uma constraint NOT NULL na coluna?)
• Valor padrão
Observação: Para obter uma lista e descrição completas das colunas na view
USER_TAB_COLUMNS, consulte “USER_TAB_COLUMNS” no Oracle Database Reference.

Oracle Database 11g: Fundamentos de SQL II 3 - 12


Faculdade Impacta Tecnologia

Informações da Coluna
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

SELECT column_name, data_type, data_length,


data_precision, data_scale, nullable
FROM user_tab_columns
WHERE table_name = 'EMPLOYEES';

s a
)h ฺa
m
co uide
i l ฺ
g ma nt G
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
Informações da Coluna p
m ble
(continuação)
Ao consultar as SaUSER_TAB_COLUMNS,
tabela ra você pode localizar detalhes sobre suas colunas,
i u f e
V nic tipos
como nomes,
i t r a ndesdados, comprimentos do tipo de dados, constraints nulas e valor padrão de
uma coluna.n-
no
O exemplo mostrado exibe colunas, tipos de dados, comprimentos de dados e constraints nulas
para a tabela EMPLOYEES. Observe que essas informações são semelhantes às obtidas com o
comando DESCRIBE.
Para exibir informações sobre colunas definidas como não usadas, utilize a view de dicionário
USER_UNUSED_COL_TABS.

Oracle Database 11g: Fundamentos de SQL II 3 - 13


Faculdade Impacta Tecnologia

Informações de Constraint
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

• USER_CONSTRAINTS descreve as definições de constraint


sobre suas tabelas.
• USER_CONS_COLUMNS descreve colunas que pertencem a
você e que são especificadas nas constraints.
DESCRIBE user_constraints

s a
)h ฺ a
m
co uide
i l ฺ
g ma nt G
a i o@ tude
… m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
Informações de Constraint
S am able
ius das
Você pode descobrir os e
f r e o tipo de constraints, o nome da tabela à qual a constraint se
nomes
aplica, n
i i c
a condição
a n sconstraints de verificação, as informações de constraint da chave
V t r
estrangeira,na-regra de deleção de constraints de chave estrangeira, o status e muitos outros tipos
no
de informações.
Observação: Para obter uma lista e descrição completas das colunas na view
USER_CONSTRAINTS, consulte “USER_CONSTRAINTS” no Oracle Database Reference.

Oracle Database 11g: Fundamentos de SQL II 3 - 14


Faculdade Impacta Tecnologia

USER_CONSTRAINTS: Exemplo
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

SELECT constraint_name, constraint_type,


search_condition, r_constraint_name,
delete_rule, status
FROM user_constraints
WHERE table_name = 'EMPLOYEES';

s a
a
)h ฺ
m
co uide
i l ฺ
g ma nt G
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
USER_CONSTRAINTS:m pa e lice
Exemplo
Sa a viewa l
bUSER_CONSTRAINTS
i u s
No exemplo mostrado,
f e r é consultada para localizar nomes, tipos,
verificar
i n c annome
icondições, s da constraint exclusiva a que a chave estrangeira faz referência, regra
V t r
de deleção de-uma chave estrangeira e status da constraint na tabelaEMPLOYEES.
non
CONSTRAINT_TYPE pode ser:
• C (constraint de verificação em uma tabela ou NOT NULL)
• P (chave primária)
• U (chave exclusiva)
• R (integridade referencial)
• V (com a opção de verificação, em uma view)
• O (com a opção somente para leitura, em uma view)

DELETE_RULE pode ser:


• CASCADE: Se o registro pai for deletado, os registros filhos também serão.
• NO ACTION: Um registro pai pode só poderá ser deletado se não houver nenhum registro
filho.
STATUS pode ser:
• ENABLED: A constraint está ativa.
• DISABLED: A constraint está desativada.

Oracle Database 11g: Fundamentos de SQL II 3 - 15


Faculdade Impacta Tecnologia

Consultando USER_CONS_COLUMNS
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

DESCRIBE user_cons_columns

SELECT constraint_name, column_name


FROM user_cons_columns a
WHERE table_name = 'EMPLOYEES';
) has
l ฺ c om ideฺ
m ai t Gu
@ g en
p ai Stud
o

l s am this
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
a
mp ble lic
Consultando USER_CONS_COLUMNS
a
Para localizaruos S dasracolunas às quais uma constraint se aplica, consulte a view de
s nomes
dicionárioi c i n s fe Essa view informa o nome do proprietário de uma
V i n USER_CONS_COLUMNS.
t r a
constraint, n - da constraint, a tabela e as colunas que contêm a constraint e a posição
o nome
o coluna
originalnda ou atributo na definição do objeto.
Observação: Uma constraint pode ser aplicada a mais de uma coluna.
Você também pode criar uma join entre USER_CONSTRAINTS e USER_CONS_COLUMNS a
fim de criar um resultado personalizado com base nas duas tabelas.

Oracle Database 11g: Fundamentos de SQL II 3 - 16


Faculdade Impacta Tecnologia

Agenda da Lição
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

• Introdução ao dicionário de dados


• Consultando views do dicionário de dados sobre:
– Informações da tabela
– Informações da coluna
– Informações de constraint
• Consultando views do dicionário de dados sobre:
– Informações da view
– Informações de sequência a
– Informações de sinônimo
) has
– Informações do índice
l ฺ c om ideฺ
ai t Gu
• Adicionando um comentário a uma tabelagemconsultando
views de dicionário sobre informações i o @ d en
de comentário
u
m pa is St
s l sa e th
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
S am able
i c ius nsfer
Vin n-tra
no

Oracle Database 11g: Fundamentos de SQL II 3 - 17


Faculdade Impacta Tecnologia

Informações da View
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

1 DESCRIBE user_views

2 SELECT view_name FROM user_views;

s a
3 SELECT text FROM user_views a
)h ฺ
WHERE view_name = 'EMP_DETAILS_VIEW'; m
co uide
i l ฺ
g ma nt G
… a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
Informações da Viewmp
Depois de criarsa S
a apode b le consultar a view de dicionário de dados USER_VIEWS para
obter on i
nomec s erda view. O texto da instrução SELECT que constitui sua view é
view, você
iue a definição
f
Vi nna-trcoluna
armazenado an LONG. A coluna LENGTH representa o número de caracteres na instrução
SELECT.noPor padrão, quando você seleciona a coluna LONG, são exibidos somente os 80
primeiros caracteres do valor da coluna. Para ver mais de 80 caracteres no SQL*Plus, use o
comando SET LONG:
SET LONG 1000
Nos exemplos do slide:
1. As colunas USER_VIEWS são exibidas. Note que essa é uma lista parcial.
2. Os nomes de suas views são recuperados
3. A instrução SELECT para EMP_DETAILS_VIEW é exibida a partir do dicionário
Acesso a Dados Usando Views
Quando você acessa dados usando uma view, o servidor Oracle executa as seguintes operações:
• Ele recupera a definição da view da tabela de dicionário de dados USER_VIEWS.
• Ele verifica os privilégios de acesso para a tabela-base da view.
• Ele converte a consulta da view em uma operação equivalente na tabela(s)-base
subjacente(s). Ou seja, os dados são recuperados das tabelas-base ou uma atualização é feita
nelas.

Oracle Database 11g: Fundamentos de SQL II 3 - 18


Faculdade Impacta Tecnologia

Informações de Sequência
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

DESCRIBE user_sequences

a
) has
l ฺ c om ideฺ
m ai t Gu
@ g en
p ai Stud
o
l s am this
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
a
Informações de Sequência
a mp ble lic
i u s S fera descreve todas as sequências pertencentes a você. Ao criar a
A view USER_SEQUENCES

V i nicvocêtrespecifica
sequência,
a ns critérios que são armazenados na view USER_SEQUENCES. As
colunas nesta-view são:
• non
SEQUENCE_NAME: Nome da sequência
• MIN_VALUE: Valor mínimo da sequência
• MAX_VALUE: Valor máximo da sequência
• INCREMENT_BY: Valor pelo qual a sequência é incrementada
• CYCLE_FLAG: A sequência é quebrada em linhas ao atingir o limite?
• ORDER_FLAG: Os números da sequência são gerados na ordem?
• CACHE_SIZE: Números de sequência em cache
• LAST_NUMBER: Número da última sequência gravada em disco. Se uma sequência usar a
gravação em cache, o número gravado no disco será o último número colocado no cache de
sequência. É provável que esse número seja maior que o da última sequência usada.

Oracle Database 11g: Fundamentos de SQL II 3 - 19


Faculdade Impacta Tecnologia

Confirmando Sequências
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

• Verifique os valores de sua sequência na tabela de


dicionário de dados USER_SEQUENCES.
SELECT sequence_name, min_value, max_value,
increment_by, last_number
DE user_sequences;

a
• A coluna LAST_NUMBER exibirá o próximo número de
) has
om
sequência disponível se NOCACHE for especificado.
eฺ
a ilฺc G u i d
@ gm ent
p aio Stud
l s am this
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
a
Confirmando Sequências
a mp ble lic
Depois de criar
i u ssuaSsequência,
f e ra ela é documentada no dicionário de dados. Como uma sequência
i n ic de banco
é um objeto
a nsde dados, você pode identificá-la na tabela de dicionário de dados
V - t r
non
USER_OBJECTS.
Também é possível confirmar as configurações da sequência por meio da seleção da view de
dicionário de dados USER_SEQUENCES .
Exibindo o Próximo Valor de Sequência Disponível Sem Incrementá-lo
Se a sequência tiver sido criada com NOCACHE, será possível exibir o próximo valor de
sequência disponível sem incrementá-lo consultando a tabela USER_SEQUENCES.

Oracle Database 11g: Fundamentos de SQL II 3 - 20


Faculdade Impacta Tecnologia

Informações do Índice
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

• USER_INDEXES fornece informações sobre seus índices.


• USER_IND_COLUMNS descreve colunas que constituem
seus índices e colunas de índices nas tabelas.

DESCRIBE user_indexes

s a
a
)h ฺ
c m
o ide
i l ฺ

g ma nt Gu
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
Informações do Índice
S am able
Consulte a view
i u s fer
USER_INDEXES para descobrir os nomes dos índices, da tabela em que o

V iniccriado
índice foi
t r
en
a ses
o índice é exclusivo.
-Para obter uma lista e descrição completas das colunas na view USER_INDEXES,
non
Observação:
consulte “USER_INDEXES” no Oracle Database Reference 11g Release 1 (11.1).

Oracle Database 11g: Fundamentos de SQL II 3 - 21


Faculdade Impacta Tecnologia

USER_INDEXES: Exemplos
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

a SELECT index_name, table_name,uniqueness


FROM user_indexes
WHERE table_name = 'EMPLOYEES';

s a
b SELECT INDEX_NAME, TABLE_NAME ) h a
FROM USER_INDEXES m
co uideฺ
i l ฺ
ma nt G
WHERE TABLE_NAME = 'EMP_LIB';
g
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
USER_INDEXES: Exemplo p
m ble
No exemplo dosslideSaa, a view
ra USER_INDEXES é consultada para localizar o nome do índice e
i u f
c qualaoníndicee
s foi criado e se o índice é exclusivo.
V inina
da tabela
t r
- slide b, observe que o servidor Oracle fornece um nome genérico ao índice
No exemplo
n o ndo
criado para a coluna PRIMARY KEY. A tabela EMP_LIB é criada com o uso do seguinte código:
CREATE TABLE EMP_LIB
(book_id NUMBER(6)PRIMARY KEY ,
title VARCHAR2(25),
category VARCHAR2(20));

Oracle Database 11g: Fundamentos de SQL II 3 - 22


Faculdade Impacta Tecnologia

Consultando USER_IND_COLUMNS
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

DESCRIBE user_ind_columns

s a
SELECT INDEX_NAME, COLUMN_NAME,TABLE_NAME a
)h ฺ
FROM user_ind_columns m
co uide
WHERE INDEX_NAME = 'LNAME_IDX'; i l ฺ
g ma nt G
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
am able
Consultando USER_IND_COLUMNS
S
A view de dicionário
i u f e r
s USER_IND_COLUMNS fornece informações, como nome do índice e
c indexada,
initabela
nome da
a ns nome de uma coluna no índice e posição da coluna no índice.
V t r
- do slide, a tabela emp_test e o índice LNAME_IDX são criados com o uso do
non
Para o exemplo
seguinte código:
CREATE TABLE emp_test AS SELECT * FROM employees;
CREATE INDEX LNAME_IDX ON emp_test(Last_Name);

Oracle Database 11g: Fundamentos de SQL II 3 - 23


Faculdade Impacta Tecnologia

Informações de Sinônimo
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

DESCRIBE user_synonyms

SELECT *
FROM user_synonyms;
s a
a
)h ฺ
m
co uide
i l ฺ
g ma nt G
a i o@ tude
m p is S
l s a th
s e
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
am able
Informações de Sinônimo
S
A view de dicionário
i u f e r
s USER_SYNONYMS descreve sinônimos particulares (sinônimos
inic -a tvocê).
pertencentes
V r ans
non
Essa view pode ser consultada para localizar sinônimos. Você pode consultar ALL_SYNONYMS
para saber o nome de todos os sinônimos disponíveis e os objetos aos quais esses sinônimos se
aplicam.
As colunas nesta view são:
• SYNONYM_NAME: Nome do sinônimo
• TABLE_OWNER: Proprietário do objeto referenciado pelo sinônimo
• TABLE_NAME: Nome da tabela ou view referenciada pelo sinônimo
• DB_LINK: Nome da referência do link de banco de dados (se houver)

Oracle Database 11g: Fundamentos de SQL II 3 - 24


Faculdade Impacta Tecnologia

Agenda da Lição
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

• Introdução ao dicionário de dados


• Consultando views do dicionário de dados sobre:
– Informações da tabela
– Informações da coluna
– Informações de constraint
• Consultando views do dicionário de dados sobre:
– Informações da view
– Informações de sequência a
– Informações de sinônimo
) has
– Informações do índice
l ฺ c om ideฺ
ai t Gu
• Adicionando um comentário a uma tabelagemconsultando
views de dicionário sobre informações i o @ d en
de comentário
u
m pa is St
s l sa e th
i n iciu to us
(v nse
Copyright © 2009, Oracle. Todos os direitos reservados.

i o
a lice
p
S am able
i c ius nsfer
Vin n-tra
no

Oracle Database 11g: Fundamentos de SQL II 3 - 25


Faculdade Impacta Tecnologia

Adicionando Comentários a uma Tabela


Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

• Você pode adicionar comentários a uma tabela ou coluna


usando a instrução COMMENT:

COMMENT ON TABLE employees


IS 'Employee Information';

COMMENT ON COLUMN employees.first_name


IS 'First name of the employee';

• Os comentários podem ser exibidos por meio das views s a


do dicionário de dados: ) ha
– ALL_COL_COMMENTS l ฺ c om ideฺ
– m ai t Gu
USER_COL_COMMENTS
@ g en
– ALL_TAB_COMMENTS
p ai Stud
o
– USER_TAB_COMMENTS
l s am this
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
a licTabela
Adicionando Comentários
a mp baluma e
i u s S umfecomentário
Você pode adicionar ra de até 4.000 bytes sobre uma coluna, tabela, view ou
snapshot
i n i c
usando a
a n s
instrução COMMENT. O comentário é armazenado no dicionário de dados e
V
pode ser exibido t r
- em uma das seguintes views do dicionário de dados na coluna COMMENTS
column:non
• ALL_COL_COMMENTS
• USER_COL_COMMENTS
• ALL_TAB_COMMENTS
• USER_TAB_COMMENTS
Sintaxe

COMMENT ON {TABLE table | COLUMN table.column}


IS 'text';

Na sintaxe:
table É o nome da tabela
column É o nome da coluna na tabela
text É o texto do comentário
Você pode eliminar um comentário do banco de dados configurando-o como string vazia (''):
COMMENT ON TABLE employees IS '';
Oracle Database 11g: Fundamentos de SQL II 3 - 26
Faculdade Impacta Tecnologia

Quiz
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

As views de dicionário baseadas nas tabelas de dicionário


contêm informações como:
1. Definições de todos os objetos de esquema no
banco de dados
2. Valores padrão para as colunas
3. Informações de constraint de integridade
4. Nomes de usuário e senhas Oracle
5. Privilégios e funções que cada usuário recebeu a
) has
l ฺ c om ideฺ
m ai t Gu
@ g en
p ai Stud
o
l s am this
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
Respostas: 1, 2, 3, 5 mp
a lic
a l e
i u s S ferab
ic s
Vin n-tran
no

Oracle Database 11g: Fundamentos de SQL II 3 - 27


Faculdade Impacta Tecnologia

Resumo
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

Nesta lição, você aprendeu a localizar informações sobre seus


objetos por meio das seguintes views de dicionário:
• DICTIONARY
• USER_OBJECTS
• USER_TABLES
• USER_TAB_COLUMNS
• USER_CONSTRAINTS
• USER_CONS_COLUMNS a
• USER_VIEWS ) has
c o m eฺ
• USER_SEQUENCES a i Guid
l ฺ
• USER_INDEXES @ gm ent
o d
• USER_SYNONYMS pai s Stu
l s am thi
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
a
Resumo
a mp ble lic
Nesta lição, você
i u sS
conheceu
f e raalgumas views de dicionário disponíveis. Elas podem ser usadas para
c
iinformaçõesssobre suas tabelas, constraints, views, sequências e sinônimos.
Vin n-tran
localizar

no

Oracle Database 11g: Fundamentos de SQL II 3 - 28


Faculdade Impacta Tecnologia

Exercício 3: Visão Geral


Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

Este exercício aborda os seguintes tópicos:


• Consultando views do dicionário para obter informações de
tabela e coluna
• Consultando views do dicionário para obter informações de
constraint
• Consultando views do dicionário para obter informações de view
• Consultando views do dicionário para obter informações de
sequência
• Consultando views do dicionário para obter informações de a
sinônimo ) has
• Consultando views do dicionário para obter informações
l ฺ c om
de deฺ
i
índice a i G u
@ gm ent views
• Adicionando um comentário a uma tabela
do dicionário para obter informaçõesp
e
tud
consultando
aiocomentário
de S
m s a s t h i
l
i c ius o use
v in e t
Copyright © 2009, Oracle. Todos os direitos reservados.
(
i o e n s
a
mp ble lic
Exercício 3: Visão Geral
a
S consulta
s você
Neste exercício, ra views do dicionário para localizar informações sobre objetos em
ic i u s f e
Vin n-tran
seu esquema.

no

Oracle Database 11g: Fundamentos de SQL II 3 - 29


Faculdade Impacta Tecnologia

Exercício 3
1. Consulte a view do dicionário de dados USER_TABLES para obter informações sobre
tabelas pertencentes a você.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ


2. Consulte a view do dicionário de dados ALL_TABLES para obter informações sobre
todas as tabelas que você pode acessar. Exclua tabelas pertencentes a você.
a
Observação: Sua lista pode não ser exatamente igual à lista a seguir:
) has
l ฺ c om ideฺ
m ai t Gu
@ g en
p ai Stud
o
… l s am this
i c ius o use
( v in e t
i o e n s
a
a mp ble lic
S determinada
3. Para obtersuma r a tabela, crie um script que informe nomes das colunas,
tipos i u
icde dados f e
escomprimentos de tipos de dados, bem como se são permitidos valores
i n a n
tr ao usuário que informe o nome da tabela. Forneça apelidos apropriados
Vnulos.nSolicite
o - DATA_PRECISION e DATA_SCALE . Salve esse script em um arquivo
àsncolunas
com o nome lab_03_01.sql.
Por exemplo, se o usuário informar DEPARTMENTS, serão obtidos os seguintes
resultados:

Oracle Database 11g: Fundamentos de SQL II 3 - 30


Faculdade Impacta Tecnologia

Exercício 3 (continuação)
4. Crie um script que informe nome da coluna, nome e tipo da constraint, condição de
pesquisa e status de uma determinada tabela. Você deve unir por join as tabelas
USER_CONSTRAINTS e USER_CONS_COLUMNS para obter todas estas informações.
Solicite ao usuário que informe o nome da tabela. Salve o script em um arquivo com o
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

nome lab_03_04.sql.
Por exemplo, se o usuário informar DEPARTMENTS, serão obtidos os seguintes resultados:

5. Adicione um comentário à tabela DEPARTMENTS. Em seguida, consulte a view


USER_TAB_COMMENTS para verificar se existe o comentário.
s a
)h ฺa
m
co uide
i l ฺ
6. Crie um sinônimo para sua tabela EMPLOYEES. Chame-a degEMP. maEmnseguida,
t G localize os
nomes de todos os sinônimos em seu esquema. a i o@ tude
m p is S
l s a th
s e
i n iciu to us
i o (v nse
a lice para criar a view dept50 para este exercício.
7. Execute o arquivo lab_03_07.sql
p
am aboslenomes e as definições de todas as views em seu esquema. Crie
É necessário determinar
S
i c ius que
um relatório
s f er USER_VIEWS.
recupere informações da view: o nome e o texto da view a partir da view
i -tranEMP_DETAILS_VIEW foi criada como parte de seu esquema.
dondicionário
VObservação:
de dados

non
Observação: Você obterá a definição completa da view se usar Run Script (ou pressionar
F5) no SQL Developer. Se usar Execute Statement (ou pressionar F9) no SQL Developer,
role horizontalmente no painel de resultados. Se você usar o SQL*Plus, para obter mais
conteúdo de uma coluna LONG, use o comando SET LONG n, em que n é o valor do
número de caracteres da coluna LONG que você deseja ver.

8. Localize os nomes de suas sequências. Crie uma consulta em um script para exibir as
seguintes informações sobre suas sequências: nome, valor máximo, tamanho do incremento
e último número da sequência. Salve o script com o nome lab_03_08.sql. Execute a
instrução em seu script.

Oracle Database 11g: Fundamentos de SQL II 3 - 31


Faculdade Impacta Tecnologia

Exercício 3 (continuação)
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2013, Oracle and/or its affiliatesฺ

Execute o script lab_03_09_tab.sql como um pré-requisito para os exercícios 9 a 11.


Outra alternativa é abrir o arquivo de script para copiar e colar o código na Planilha SQL.
Em seguida, execute o script. Esse script:
• Será eliminado se houver tabelas DEPT2 e EMP2
• Criará as tabelas DEPT2 e EMP2
Observação: No Exercício 2, você já deverá ter eliminado as tabelas DEPT2 e EMP2 para
que elas não possam ser restauradas.

9. Confirme se as tabelas DEPT2 e EMP2 estão armazenadas no dicionário de dados. s a


a
)h ฺ
m
co uide
i l ฺ
g ma nt G
a i o@ tude
10. Confirme se as constraints foram adicionadas por
m S da view
pmeio daisconsulta
a h
USER_CONSTRAINTS. Observe os tiposls
i u s e tdas constraints.
s e osunomes
i n ic to
i o (v nse
p a lice
S am able
i c ius nsfer
11. in os-tnomes
VasExiba ra e os tipos do objeto da view do dicionário de dados USER_OBJECTS para
n
no EMP2 e DEPT2.
tabelas

12. Crie a tabela SALES_DEPT baseada no gráfico de instância de tabela a seguir: Nomeie o
índice da coluna PRIMARY KEY como SALES_PK_IDX. Em seguida, consulte a view do
dicionário de dados para localizar o nome do índice, da tabela e se o índice é exclusivo.
Column Name Team_Id Location

Primary Key Yes


Data Type Number VARCHAR2
Length 3 30

Oracle Database 11g: Fundamentos de SQL II 3 - 32

Você também pode gostar