Baixe o app para aproveitar ainda mais
Prévia do material em texto
AULA 3 – CONCEITOS BÁSICOS PL/SQL - ORACLE PL - Procedural Language SQL - Structured Query Language - A PL/SQL é uma linguagem de programação sofisticada utilizada para acessar o Banco de DadosORACLE a partir de vários ambientes. - Ela é integrada com o servidor do Banco de Dados de modo que o código PL/SQL possa ser processado de maneira rápida e eficiente. - Pode-se usar comandos SQL para manipular os dados da base ORACLE. - Pode-se declarar constantes e variáveis, definir subprogramas (procedures e funcoes), controlar erros de execução. - Pode-se criar cursores para tratar o resultado de uma consulta. - Pode-se utilizar comandos de decisão (IF, IF - THEN - ELSE, CASE) e repetição (LOOP, FOR, WHILE). VANTAGENS - Versatilidade - Portabilidade - Integração com SGBD (SISTEMA GERENCIADOR DE BANCO DE DADOS) - Capacidade procedural - Redução de trafego na rede A PL/SQL eh uma estrutura em blocos, ou seja, as unidades básicas (procedures, functions etc) podem conter qualquer numero de sub-blocos. Estrutura básica de um bloco PL/SQL DECLARE (opcional) Inicializações, declaração de constantes, variáveis e cursores BEGIN Comandos SQL, estruturas de programação e outros blocos PL/SQL EXCEPTION (opcional) Tratamento de exceções, emissão de mensagens END; IMPORTANTE: Para visualizar a saída no SQL*Plus faça a seguinte alteração: SET SERVEROUTPUT ON Tipos de dados – pagina 4 Record – Table – Cursor Constantes e Variáveis CONSTANTE é uma variável que não pode ter ser valor alterado. Constantes devem ter seus valores atribuídos na declaração, necessariamente. EX: DECLARE pi CONSTANT NUMBER(9,7) := 3.1415927; Variáveis podem ser utilizadas para: Armazenar dados temporários Manipulação de valores armazenados Reusabilidade (não é necessário consultar repetidas vezes os dados armazenados) Facilidade de manutenção Ex: DECLARE v1 NUMBER(4):= 1; v2 NUMBER(4):= DEFAULT 1; v3 NUMBER(4) NOT NULL:= 1; DECLARE v_var1 number(6); v_var2 varchar(20) default 'Teste'; v_var3 date not null := sysdate; v_var4 number(5,2) := &v_var4 ; &v_var4 - Representa o conteúdo de uma variável SQL*PLUS.É substituída, literalmente. Variáveis PL/SQL suportam todos os tipos de dados da linguagem SQL e novos tipos definidos para o PL/SQL, como BOOLEAN (admite os valores TRUE, FALSE ou NULL). As variáveis podem receber ou não valor inicial. Caso a declaração da variável receba a cláusula Not Null, a atribuição de valor inicial se torna obrigatória. Quando não informamos valor inicial para uma variável, seu valor é considerado desconhecido, ou seja, Null. Uma variável declarada em um bloco é visível nesse e em todos os blocos subordinados a ele. Uma variável declarada em um bloco deixa de existir quando o bloco termina. Podemos carregar variáveis a partir do comando SELECT: Ex: SELECT ra_aluno, nome_aluno INTO ra, aluno FROM aluno; Obs: Este tipo de construção só funciona quando o SELECT devolva uma única linha. No caso de várias linhas, será usado um CURSOR, explicado posteriormente. 4.2.1. HERANÇA DE TIPO E TAMANHO As constantes e variáveis podem herdar o tipo de outras variáveis, de colunas ou até da linha inteira de uma tabela. Desta forma, diminuem-se as manutenções oriundas nas alterações realizadas nas colunas de tabelas (ex: tamanho da coluna). • Herdando o tipo de uma variável previamente declarada: nome_da_variavel_2 nome_da_variavel_1%Type; • Herdando o tipo de uma coluna de uma tabela: nome_da_variavel nome_da_tabela.nome_da_coluna%Type; • Herdando o tipo de uma linha inteira de uma tabela: nome_da_variavel nome_da_tabela%Rowtype; Ex: CREATE TABLE ALUNO ( RA NUMBER(5), NOME VARCHAR2(40)); INSERT INTO ALUNO VALUES (1,'ANTONIO'); INSERT INTO ALUNO VALUES (2,'BEATRIZ'); DECLARE V_RA ALUNO.RA%TYPE; V_NOME ALUNO.NOME%TYPE; BEGIN SELECT RA, NOME INTO V_RA, V_NOME FROM ALUNO WHERE RA=1; DBMS_OUTPUT.PUT_LINE(V_RA ||' - '|| V_NOME); END; DECLARE V_ALUNO ALUNO%rowtype; BEGIN SELECT RA, NOME INTO V_ALUNO.RA, V_ALUNO.NOME FROM ALUNO WHERE RA=1; DBMS_OUTPUT.PUT_LINE(V_ALUNO.RA ||' - '|| V_ALUNO.NOME); END; Exercícios. OBS: fazer todos os exercícios usando blocos PL/SQL 1. Alterar a cláusula WHERE acima para: WHERE RA=1 OR RA=2 e verificar o resultado. 2. Alterar a cláusula WHERE acima para: WHERE RA=3 e verificar o resultado. 3. Alterar a cláusula WHERE acima para: WHERE RA=&RA_DO_ALUNO. 4. Inserir os seguintes valores na tabela aluno: ra=5, nome='DANIEL'. 5. Alterar o nome do aluno cujo RA=5 para 'ERNESTO'. 6. Excluir da tabela o aluno cujo RA=5. 7. Criar um bloco PL-SQL para calcular o valor do novo salário mínimo que deverá ser 8% a mais sobre o valor atual. O valor atual deve ser uma constante dentro do bloco. 8. Criar um bloco PL-SQL para calcular o valor em REAIS de 45 dólares, sendo que o valor do câmbio a ser considerado é de R$ 2,03, no qual estes valores deverão ser constantes dentro do bloco. 9 . Criar um bloco PL-SQL para calcular o valor do novo salário mínimo que deverá ser 10% a mais sobre o valor atual. O valor atual deverá ser informado em tempo de execução. 10. Criar um bloco PL-SQL para converter em REAIS os valores que serão informados em dólares. Os valores (dólar e câmbio) deverão ser informados em tempo de execução.
Compartilhar