Buscar

Explicação Com Atividade

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.

Outros materiais