DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano
Gerenciando Objetos com Visões do Dicionário de Dados
Após o término do Capítulo: Utilizar as visões do Dicionário de Dados para pesquisar dados sobre objetos. Consultar diversas visões do Dicionário de Dados do Oracle.
Servidor Oracle Tabelas contento dados de negócios: EMPLOYEES DEPARTMENTS LOCATIONS JOB_HISTORY... Visões do Dicionário de Dados: DICTIONARY USER_OBJECTS USER_TABLES USER_TAB_COLUMNS...
Servidor Oracle Consiste de: Tabelas Base Visões acessíveis aos usuários
Prefixo da View USER ALL DBA Propósito Visão do Usuário (o que existe em seu esquema; o que ele é dono) Visão do Usuário Expandida (o que ele acessa) Visão do Administrador de Banco de Dados (o que existe em todos os esquemas) V$ Dados relacionados a performance
USER_OBJECTS: Consulte a view USER_OBJECTS para ver todos os objetos que você é dono. É um caminho útil de obter uma listagem de todos os nomes e tipos de objetos em seu esquema, além das seguintes informações: Data de Criação. Data da Última Modificação. Status (Válido ou Inválido). ALL_OBJECTS: Consulte a view ALL_OBJECTS para ver todos os objetos que você tem acesso.
SELECT object_name, object_type, created, status FROM user_objects ORDER BY object_type;
USER_TABLES: DESCRIBE user_tables SELECT table_name FROM user_tables;
USER_TAB_COLUMNS: DESCRIBE user_tab_columns
USER_CONSTRAINTS: descreve as informações das contraints das tabelas que você é dono. USER_CONS_COLUMNS: descreve as colunas das constraints que você é dono. DESCRIBE user_constraints
SELECT constraint_name, constraint_type, search_condition, r_constraint_name, delete_rule, status FROM user_constraints WHERE table_name = 'EMPLOYEES';
DESCRIBE user_cons_columns SELECT constraint_name, column_name FROM user_cons_columns WHERE table_name = 'EMPLOYEES';
1 DESCRIBE user_views 2 SELECT DISTINCT view_name FROM user_views; 3 SELECT text FROM user_views WHERE view_name = 'EMP_DETAILS_VIEW';
DESCRIBE user_sequences
Verifique os valores de suas sequences na visão USER_SEQUENCES. SELECT FROM sequence_name, min_value, max_value, increment_by, last_number user_sequences; A coluna LAST_NUMBER mostra o próximo número seqüencial disponível se NOCACHE é especificado.
DESCRIBE user_synonyms SELECT * FROM user_synonyms;
Você pode adicionar comentários a uma tabela ou coluna utilizando a instrução COMMENT. COMMENT ON TABLE employees IS 'Employee Information'; Comment created. Comentários podem ser vistos por meio das visões do Dicionário de Dados: ALL_COL_COMMENTS USER_COL_COMMENTS ALL_TAB_COMMENTS USER_TAB_COMMENTS
Visões do Dicionário de Dados vistas no capítulo: DICTIONARY USER_OBJECTS USER_TABLES USER_TAB_COLUMNS USER_CONSTRAINTS USER_CONS_COLUMNS USER_VIEWS USER_SEQUENCES USER_SYNONYMS USER_COL_COMMENTS USER_TAB_COMMENTS
Objetivos: Consultar as visões do DD referentes a tabelas e colunas. Consultar as visões do DD referentes a constraints, visões, sequences e sinônimos. Adicionar um comentário a uma tabela e consultá-lo nas visões do DD.
1. Para uma tabela específica, crie um script que mostre os nomes das colunas, seus tipos de dados e tamanhos e se valores NULL são permitidos. Solicite ao usuário o nome da tabela. Dê aliases apropriados às colunas. Salve o script. Por exemplo (tabela Departments):
1. Solução: SELECT column_name, data_type, data_length, data_precision PRECISION, data_scale SCALE, nullable FROM user_tab_columns WHERE table_name = UPPER('&tab_name');
2. Para uma tabela específica, crie um script que mostre os nomes das colunas, nomes das constraints, tipos das constraints, condição de busca (search condition) e status das constraints. Solicite ao usuário o nome da tabela. Salve o script. Exemplo (tabela Departments):
2. Solução: SELECT ucc.column_name, uc.constraint_name, uc.constraint_type, uc.search_condition, uc.status FROM user_constraints uc JOIN user_cons_columns ucc ON uc.table_name = ucc.table_name AND uc.constraint_name = ucc.constraint_name AND uc.table_name = UPPER('&tab_name');
3. Adicione um comentário à tabela Departments. Então consulte a visão do Dicionário de Dados para confirmar que o comentário esteja presente. COMMENT ON TABLE departments IS 'Company department information'; SELECT COMMENTS FROM user_tab_comments WHERE table_name = 'DEPARTMENTS';
4. Encontre os nomes de todos os sinônimos que pertençam ao seu esquema. SELECT * FROM USER_SYNONYMS; 5. Determine os nomes e definições (SQL que compõe a view) das visões pertencentes ao seu esquema. Obs: Para exibir mais conteúdo de uma coluna LONG, use o comando isqlplus SET LONG n, onde n é o nº de caracteres que você quer ver. SET LONG 600 SELECT view_name, text FROM user_views;
6. Encontre os nomes de suas sequences. Escreva uma consulta para mostrar as seguintes informações sobre suas sequences: nome da sequence, valor máximo, valor de incremento e o último número. Salve o script e execute-o. SELECT sequence_name, max_value, increment_by, last_number FROM user_sequences;