Uniao Educacional e Tecnologica Impacta- Uni Impacta

Documentos relacionados
Oracle Database 11g: Introdução à Linguagem SQL Novo

Uniao Educacional e Tecnologica Impacta- Uni Impacta

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DICIONÁRIO DE DADOS. Contém detalhes dos objetos pertencentes ao usuário.

BANCO DE DADOS. SQL Select. Engenharia da Computação. Aula 20. Vamos considerar a tabela EMP para os exemplos a seguir. SELECT colunas FROM tabelas;

Usando Subconsultas para Solucionar Consultas

Oracle Database 12c: Introdução ao SQL Ed. 2

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

Técni n c i as e L i L n i g n u g age g ns n p ara r Ba B nc n o d e D ados I ACCESS

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Tarefa Orientada 9 Base de Dados Pagamentos

Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Banco de Dados I Introdução SQL

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Oracle Database: Fundamentos de SQL e PL/SQL

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

Analisando Dados Graficamente

EXEMPLO DE FLASHBACK VERSIONS QUERY E FLASHBACK TRANSACTION QUERY

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Tarefa Orientada 17 Scripts

Linguagem SQL Restrições, Triggers e Views

Banco de Dados. Professora: Luciana Faria

Rápida revisão do Modelo Relacional

ACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

Aula 06 Sistemas Embarcados LT38C

INSTALAÇÃO DO LOGIX COM BANCO ORACLE

f. Exemplo: verificar condição de aprovação de alunos

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Tabelas. Banco de Dados I MySQL

S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A

Marcos Alexandruk Marcos Alexandruk

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho

Título: Ao acessar o sistema em uma Estação ocorre a mensagem Erro 100 (O servidor do banco de dados não está sendo executado).

SISTEMAS DE INFORMAÇÃO

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

--Depois que o backup for concluído, restaurá-lo no servidor Mirror usando a opção WITH NORECOVERY.

Introdução à linguagem SQL

A linguagem SQL

non-transferable license to use this Student Guide

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Uniao Educacional e Tecnologica Impacta- Uni Impacta

Manual Recurso Valores Default. FullCopyConvert Data

Conexão com Banco de Dados, Inserção, exclusão e atualização de registros

Ana Cristina de Figueiredo Dornelas SQL E ORACLE 3ª. PARTE

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Instalação Serviço de Acompanhamento de Projeto (PCSIS007) Sistema de Gestão da Qualidade

SQL Linguagem de Definição de Dados

<Course name> <Lesson number>- #

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

BANCO DE DADOS GERENCIAL 1 A U L A 2

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Para criarmos um banco de dados no MySql, utilizamos à instrução:

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

ANEXO B Manual básico de SQL

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

Aula Prática de Redes Industriais Wireshark

Lidando com Armazenamento de Dados

Movimento do Caixa

ACH2025. Aula 11. Visões. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Fundamentos de Banco de Dados Postgre com Sql

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Portal de Cotação da FCC S.A.

BANCO DE DADOS PARA WEB

Introdução em Banco de Dados

Bases de Dados. DML Data Manipulation Language Parte 3

Novo Sistema de Relatórios. Associado. Informação Confidencial

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

Passo 3: Preparando-se para a criação de seu vídeo de curta duração/apresentação de slides

Código PD0017. Este documento ter por objetivo auxiliar o usuário no entendimento e utilização do Nexus.

Prof. Esp. Andrew Rodrigues 1

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

C A P I T U L O 10 F U N Ç Õ E S I N T E R N A S P H P P A R A B A N C O D E D A D O S

Bem-vindo ao Picture Package Producer2

Oracle Database 12c: Programando com PL/SQL Ed. 2

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA. Full Text Searching

Oracle Objeto-Relacional. Pablo Vieira Florentino

Ferramentas de configuração: Soluções

PostgreSQL. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Spectrum Miner. Versão 8.0. Guia de administração para a integração do Portrait Dialogue

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

Emissão de Recibos. Copyright ControleNaNet

Administração de Banco de Dados

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova

José Antônio da Cunha

Oracle SQL Developer

Transcrição:

Scripts avançados de gravação

Objetivos Após concluir este apêndice, você poderá: Descrever o tipo de problemas que são resolvidos usando SQL para gerar SQL Gravar um script que gera um script de instruções DROP TABLE Gravar um script que gera um script de instruções INSERT INTO G - 2 Objetivos Neste apêndice, você aprenderá a gravar um script SQL para gerar um script SQL. Oracle Database 11g: Fundamentos de SQL II G - 2

Usando SQL para gerar SQL A SQL pode ser usada para gerar scripts em SQL. O dicionário de dados é: G - 3 Uma coleção das tabelas e views que contém as informações do banco de dados Criado e mantido pelo Oracle Server SQL Script SQL Dicionário de dados Usando SQL para gerar SQL A SQL pode ser uma ferramenta sofisticada para a geração de outras instruções SQL. Na maioria dos casos, isso envolve gravar um arquivo de script. É possível usar SQL de SQL para: Impedir código repetitivo Acessar informações do dicionário de dados Eliminar ou recriar objetos do banco de dados Gerar predicados dinâmicos que contenham parâmetros do tempo de execução Os exemplos usados nesta lição envolvem a seleção de informações no dicionário de dados. O dicionário de dados é uma coleção das tabelas e views que contém as informações sobre o banco de dados. Essa coleção é criada e mantida pelo Oracle Server. Todas as tabelas do dicionário de dados são de propriedade do usuário SYS. As informações armazenadas no dicionário de dados incluem os nomes dos usuários do Oracle Server, os privilégios concedidos aos usuários, os nomes de objetos do banco de dados, as restrições de trabalho e as informações de auditoria. Há quatro categorias de views do dicionário de dados. Cada categoria tem um prefixo distinto que reflete o uso ao qual se destina. Prefixo Descrição USER_ Contém detalhes dos objetos pertencentes ao usuário ALL_ DBA_ V$_ Contém detalhes dos objetos para os quais o usuário ganhou direitos de acesso e dos objetos pertencentes ao usuário Contém detalhes dos usuários com privilégios de DBA para acessar qualquer objeto do banco de dados Armazena informações sobre o desempenho e o bloqueio do servidor do banco de dados; disponível apenas para o DBA Oracle Database 11g: Fundamentos de SQL II G - 3

Criando um script básico SELECT 'CREATE TABLE ' table_name '_test ' 'AS SELECT * FROM ' table_name ' WHERE 1=2;' AS "Create Table Script" FROM user_tables; G - 4 Um script básico O exemplo no slide produz um relatório com as instruções CREATE TABLE em cada tabela de sua propriedade. Cada instrução CREATE TABLE produzida no relatório inclui a sintaxe para criar uma tabela usando o nome da tabela com um sufixo _test e tendo apenas a estrutura da tabela existente correspondente. O nome antigo da tabela é obtido da coluna TABLE_NAME da view de dicionário de dados USER_TABLES. A próxima etapa é melhorar o relatório para automatizar o processo. Observação: Você pode consultar as tabelas do dicionário de dados para exibir vários objetos de banco de dados de sua propriedade. As views do dicionário de dados frequentemente usadas incluem: USER_TABLES: Exibe a descrição das tabelas de propriedade do usuário USER_OBJECTS: Exibe todos os objetos de propriedade do usuário USER_TAB_PRIVS_MADE: Exibe todas as concessões nos objetos de propriedade do usuário USER_COL_PRIVS_MADE: Exibe todas as concessões nas colunas de objetos de propriedade do usuário Oracle Database 11g: Fundamentos de SQL II G - 4

Controlando o ambiente G - 5 SET ECHO OFF SET FEEDBACK OFF SET PAGESIZE 0 Instrução SQL SET FEEDBACK ON SET PAGESIZE 24 SET ECHO ON Defina as variáveis do sistema com os valores apropriados. Defina as variáveis do sistema novamente para os valores default. Controlando o ambiente Para executar as instruções SQL geradas, você deve capturá-las em um arquivo que possa ser executado. Você também dever planejar a limpeza da saída gerada e confirmar a supressão dos elementos, como cabeçalhos, mensagens de feedback, títulos superiores e assim por diante. No SQL Developer, é possível salvar essas instruções em um script. Para salvar o conteúdo da caixa Informar Instrução SQL, clique no ícone Salvar ou use o item de menu Arquivo > Salvar. Além disso, é possível clicar com o botão direito do mouse na caixa Informar Instrução SQL e selecionar a opção Salvar Arquivo no menu drop-down. Observação: Algumas instruções SQL*Plus não são suportadas pela Planilha SQL. Para obter a lista completa de instruções SQL*Plus com ou sem suporte na Planilha SQL, consulte o tópico Instruções SQL*Plus com e sem Suporte na Planilha SQL na Ajuda on-line do SQL Developer. Oracle Database 11g: Fundamentos de SQL II G - 5

O quadro completo SET ECHO OFF SET FEEDBACK OFF SET PAGESIZE 0 SELECT 'DROP TABLE ' object_name ';' FROM user_objects WHERE object_type = 'TABLE' / SET FEEDBACK ON SET PAGESIZE 24 SET ECHO ON G - 6 O quadro completo A saída do comando no slide é salva em um arquivo denominado dropem.sql no SQL Developer. Para salvar a saída em um arquivo no SQL Developer, use a opção Salvar Arquivo no painel Saída do Script. O arquivo dropem.sql contém os seguintes dados. Esse arquivo pode agora ser iniciado a partir do SQL Developer localizando, carregando e executando o arquivo de script. Oracle Database 11g: Fundamentos de SQL II G - 6

G - 7 Fazendo dump do conteúdo de uma tabela para um arquivo SET HEADING OFF ECHO OFF FEEDBACK OFF SET PAGESIZE 0 SELECT 'INSERT INTO departments_test VALUES (' department_id ', ''' department_name ''', ''' location_id ''');' AS "Insert Statements Script" FROM departments / SET PAGESIZE 24 SET HEADING ON ECHO ON FEEDBACK ON Fazendo dump de conteúdo para um arquivo Algumas vezes, é útil ter os valores das linhas de uma tabela em um arquivo de texto no formato de uma instrução INSERT INTO VALUES. Esse script pode ser executado para preencher a tabela, caso esta seja eliminada acidentalmente. O exemplo no slide produz instruções INSERT para a tabela DEPARTMENTS_TEST, capturada no arquivo data.sql usando a opção Salvar Arquivo no SQL Developer. O conteúdo do arquivo de script data.sql é apresentado a seguir: INSERT INTO departments_test VALUES (10, 'Administration', 1700); INSERT INTO departments_test VALUES (20, 'Marketing', 1800); INSERT INTO departments_test VALUES (50, 'Shipping', 1500); INSERT INTO departments_test VALUES (60, 'IT', 1400);... Oracle Database 11g: Fundamentos de SQL II G - 7

G - 8 Fazendo dump do conteúdo de uma tabela para um arquivo Origem '''X''' '''' '''' department_name '''' ''', ''' ''');' Resultado 'X' ' 'Administration' Fazendo dump de conteúdo para um arquivo (continuação) Talvez você tenha percebido o grande número de sinais de aspas simples no slide anterior. Um conjunto de quatro sinais de aspas simples produz um único sinal de aspas na instrução final. Lembre-se de que esse caractere e os valores de data devem ser colocados entre aspas. Dentro dessa string, para exibir um sinal de aspas simples, adicione outro sinal de aspas simples como prefixo. Por exemplo, no quinto exemplo no slide, as aspas circundantes são para toda a string. O segundo sinal de aspas atua como um prefixo para a exibição do terceiro sinal de aspas. Assim, o resultado é um único sinal de aspas, seguido por um parêntese, seguindo por um pontoe-vírgula. ',' '); Oracle Database 11g: Fundamentos de SQL II G - 8

Gerando um predicado dinâmico COLUMN my_col NEW_VALUE dyn_where_clause SELECT DECODE('&&deptno', null, DECODE ('&&hiredate', null, ' ', 'WHERE hire_date=to_date(''' '&&hiredate'',''dd-mon-yyyy'')'), DECODE ('&&hiredate', null, 'WHERE department_id = ' '&&deptno', 'WHERE department_id = ' '&&deptno' ' AND hire_date = TO_DATE(''' '&&hiredate'',''dd-mon-yyyy'')')) AS my_col FROM dual; SELECT last_name FROM employees &dyn_where_clause; G - 9 Gerando um predicado dinâmico O exemplo no slide gera uma instrução SELECT que recupera os dados de todos os funcionários em um departamento que tenham sido admitidos em um dia específico. O script gera a cláusula WHERE dinamicamente. Observação: Depois de posicionar a variável do usuário, use o comando UNDEFINE para deletá-lo. A primeira instrução SELECT solicita que você informe o número do departamento. Se você não especificar um número de departamento, este será tratado como nulo pela função DECODE e o usuário receberá uma solicitação para informar a data de admissão. Se você não informar a data de admissão, esta será tratada como nula pela função DECODE e a cláusula WHERE dinâmica gerada também será nula, fazendo com que a segunda instrução SELECT recupere todas a linhas da tabela EMPLOYEES. Observação: A variável NEW_V[ALUE] especifica uma variável para reter um valor de coluna. É possível referenciar a variável nos comandos TTITLE. Use NEW_VALUE para exibir os valores de coluna ou a data no título superior. Inclua a coluna em um comando BREAK com a ação SKIP PAGE. O nome da variável não pode conter um símbolo de cerquilha (#). NEW_VALUE é útil para relatórios-mestre/detalhados em que haja um novo registro-mestre para cada página. Oracle Database 11g: Fundamentos de SQL II G - 9

Gerando um predicado dinâmico (continuação) Observação: Aqui, a data de admissão deve ser especificada no formato DD-MON-YYYY. A instrução SELECT no slide pode ser interpretada como segue: IF (<<deptno>> is not entered) THEN IF (<<hiredate>> is not entered) THEN return empty string ELSE return the string WHERE hire_date = TO_DATE('<<hiredate>>', 'DD-MON-YYYY') ELSE IF (<<hiredate>> is not entered) THEN return the string WHERE department_id = <<deptno>> entered' ELSE return the string WHERE department_id = <<deptno>> entered AND hire_date = TO_DATE(' <<hiredate>>', 'DD-MON-YYYY') END IF A string retornada torna-se o valor da variável DYN_WHERE_CLAUSE, que será usada na segunda instrução SELECT. Observação: Use SQL*Plus para esses exemplos. Quando o primeiro exemplo no slide é executado, o usuário recebe uma solicitação para informar os valores DEPTNO e HIREDATE: O seguinte valor para MY_COL é gerado: Quando o segundo exemplo no slide for executado, a seguinte saída será gerada: Oracle Database 11g: Fundamentos de SQL II G - 10

Resumo Neste apêndice, você aprendeu que: É possível gravar um script SQL para gerar outro script SQL Os arquivos de script frequentemente usam o dicionário de dados É possível capturar a saída em um arquivo G - 11 Resumo A SQL pode ser usada para gerar scripts SQL. Esses scripts podem ser usados para impedir código repetitivo, eliminar ou recriar objetos, obter ajuda a partir do dicionário de dados e gerar predicados dinâmicos que contenham parâmetros de tempo de execução. Oracle Database 11g: Fundamentos de SQL II G - 11