O PL/SQL é uma linguagem de acesso a dados relacionais para o SGBD da Oacle.
Elá fornece um conjunto de funções que facilitam a vida do desenvolvedor no momento da criação dos programas, além do que, por ser executada dentro do SGBD não é necessário que movimentar os dados entre aplicação de banco de dados, tornando a execução bem mais rápida.
3. SQL (Structured Query Language)
Linguagem declarativa
Projetada para trabalhar com BD Relacionais
Criada no início da década de 70
SQL ANSI
Padronização da linguagem pela American National
Standards Institute (ANSI) em 1986
8 Revisões
SQL-86, SQL-89, SQL-92, SQL-1999,
SQL-2003, SQL-2006, SQL-2008, SQL-2011
Pequeno Histórico
5. Desenvolvida pela Oracle no início dos anos
90 para melhorar as capacidades do SQL
Adiciona ao SQL características de linguagens
de procedurais
Procedural Language/Structured Query Language (PL/SQL)
É uma extensão da linguagem SQL
PL/SQL
6. Não é um produto separado
É uma tecnologia integrada ao SGDB Oracle
É possível trabalhar de forma tanto
declarativa (SQL) quanto de forma procedural
(PL/SQL)
PL/SQL
7. PL/SQL
Suporta conceito de packages
Agrupamento de funções relacionadas
Provê um mecanismo de captura e
tratamento de erros
8. Aplicações para a manipulação grandes volumes
de dados
Tabelas com milhões ou bilhões de registros
Purge (limpeza)
Backup
Rotinas de atualização/exclusão em massa
Reports/BI
Para que eu preciso disso ?
9. Por ser executado dentro do Oracle
Dados não precisam entrar/sair do SGBD
Não há sobrecarga de tráfego pela rede
Não são necessárias API's
intermediárias para acesso a dados
ODBC ou JDBC, etc
ExistemVantagens ?
13. Condicionais
IF-THEN Statement
IF condition THEN
statements
END IF;
IF-THEN-ELSIF Statement
IF condition1 THEN
statement1
ELSIF condition2 THEN
statement2
ELSE
statement3
END IF;
CASE Statement
CASE type
WHEN 'A' THEN statement1;
WHEN 'B' THEN statement2
ELSE statementElse;
END CASE;
15. Repetição
WHILE-LOOP
WHILE total < 25 LOOP
…
total := total + inc.
END LOOP;
FOR-LOOP
FOR counter IN [REVERSE] m..n LOOP
statements;
END LOOP;
FOR-LOOP
FOR i IN reverse 1..3 LOOP
dbms_output.put_line(i);
END LOOP;
Resultado: 3 2 1
16. Repetição
FOR row IN (SELECT * FROM empregado) LOOP
dbms_output.put_line(row.nome);
END LOOP;
FOR row IN (SELECT * FROM empregado) LOOP
EXIT WHEN UPPER(row.nome) LIKE 'MARIA%';
END LOOP;
17. Evita a necessidade de reescrita de código
Todas as funções já foram testadas pela ORACLE
Fornecem mais usabilidade ao PL/SQL
Grande variedade de funções
Funções Embuitdas
24. Requisitos
“Equalizador salários”
Os salários devem ser reajustados
• 15 % para maiores 40 anos
• 10 % para maiores de 35 anos
• 5 % para maiores de 30 anos
Se o salário ajustado for maior que a média salarial, o
salário será o mesmo
• A média deve desconsiderar os salários extremos(maior
e menor)
Todas as alterações na base devem ser “logadas”
25.
26. Por hoje é isso !!!
E SE AINDA
TIVERMOS TEMPO ...
PERGUNTAS ??
http://migre.me/dDb41
http://migre.me/dDbda