SlideShare uma empresa Scribd logo
Introdução
a
PL/SQL
Ismael Soares
quinta-feira, 23 de maio de 13
Procedure Language
Structured Query Language
quinta-feira, 23 de maio de 13
É uma linguagem de programação
procedural da Oracle que estende a
linguagem SQL
quinta-feira, 23 de maio de 13
Blocos de PL/SQL são passados e processados por uma PL/SQL
Engine que pode estar dentro de uma ferramenta Oracle ou do
Server.
Dados
Engine
Select
Begin
cursor
truncate
Select
execute
SQL
Executor
quinta-feira, 23 de maio de 13
DML - Data Manipulation Language
DDL - Data Definition Language
quinta-feira, 23 de maio de 13
Exemplos de DDL:
create table produto
(
produto_key number,
descrição varchar2(100),
etc....
);
drop sequence seq_produto;
alter table produto modify column descricao
varchar2(300);
quinta-feira, 23 de maio de 13
Exemplos de DML:
insert into produto (produto_key, descricao)
values (seq_produto.nextval, ‘acucar’);
delete from produto where produto_key = 1;
update produto
set descricao = ‘ovo de pascoa’
where produto_key = 1;
quinta-feira, 23 de maio de 13
PL/SQL pode ser usado
em:
Type
Bloco anónimo
Procedure
Trigger Package
Function
quinta-feira, 23 de maio de 13
- Definição
- Edição
- Conclusão
Formada por 3 camadas
quinta-feira, 23 de maio de 13
DECLARE
Variáveis
SELECTION
cursor
BEGIN
Instruções procedimentais e SQL.
Esta é a única seção do bloco que é indispensável e obrigatória.
EXCEPTION
Tratamento de erro
END;
/
quinta-feira, 23 de maio de 13
Variáveis
quinta-feira, 23 de maio de 13
Tipos
quinta-feira, 23 de maio de 13
Declaração
quinta-feira, 23 de maio de 13
Escopo
quinta-feira, 23 de maio de 13
Atribuição
quinta-feira, 23 de maio de 13
Operadores
quinta-feira, 23 de maio de 13
Comparação
quinta-feira, 23 de maio de 13
Busca
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
Condições
quinta-feira, 23 de maio de 13
Fluxo
Condição
true false
Código
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
IF Eu recomendo!
quinta-feira, 23 de maio de 13
IF-ELSE É melhor fazer
dois IFs...
quinta-feira, 23 de maio de 13
IF-ELSIF-ELSE Nossa!!! Não
precisa de 3 IFs?
quinta-feira, 23 de maio de 13
Case
Expressão
When 1
Bloco 1
When 2
Bloco 2
Default
Bloco N
When 3
Bloco 3
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
Loops
Condição
Código Condicional
true
false
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
Bloco
anónimo
quinta-feira, 23 de maio de 13
Exemplo bloco anónimo
quinta-feira, 23 de maio de 13
Collections
quinta-feira, 23 de maio de 13
Arrays
quinta-feira, 23 de maio de 13
Index By
quinta-feira, 23 de maio de 13
Nested table
quinta-feira, 23 de maio de 13
Procedures
quinta-feira, 23 de maio de 13
Fala ai Carneiro
Nada mais é
que um bloco PL/
SQL armazenado!
quinta-feira, 23 de maio de 13
Simples assim?
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
Exemplo
quinta-feira, 23 de maio de 13
Exemplo
quinta-feira, 23 de maio de 13
Passando Parâmetros
quinta-feira, 23 de maio de 13
Functions
quinta-feira, 23 de maio de 13
Vai me dizer que é
um Bloco armazenado
também?!
quinta-feira, 23 de maio de 13
Hummm... É!
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
Exemplo
quinta-feira, 23 de maio de 13
Triggers
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
Vantagens
Atualizar colunas calculadas
Força integridade referencial
Auditoria
Validações de segurança
Garantir consistência dos
dados
quinta-feira, 23 de maio de 13
Exemplos
quinta-feira, 23 de maio de 13
quinta-feira, 23 de maio de 13
Packages
quinta-feira, 23 de maio de 13
Pacote de procedimentos
e funções
quinta-feira, 23 de maio de 13
Specification
Body (definição)
quinta-feira, 23 de maio de 13
Chamada apenas para elementos especificados
quinta-feira, 23 de maio de 13
Exemplos
quinta-feira, 23 de maio de 13
Exemplos
quinta-feira, 23 de maio de 13
Obrigado
quinta-feira, 23 de maio de 13

Mais conteúdo relacionado

Mais de Ismael

TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão ÁgilTDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
Ismael
 
Introducao ao Pensamento Sistemico
Introducao ao Pensamento SistemicoIntroducao ao Pensamento Sistemico
Introducao ao Pensamento Sistemico
Ismael
 
Testes de unidade alem do basico
Testes de unidade alem do basicoTestes de unidade alem do basico
Testes de unidade alem do basico
Ismael
 
Bluesoft Culture
Bluesoft CultureBluesoft Culture
Bluesoft Culture
Ismael
 
Como dar e receber feedbacks
Como dar e receber feedbacksComo dar e receber feedbacks
Como dar e receber feedbacks
Ismael
 
Eficiencia de fluxo
Eficiencia de fluxoEficiencia de fluxo
Eficiencia de fluxo
Ismael
 
Como você testa seu software TDC 2017
Como você testa seu software  TDC 2017Como você testa seu software  TDC 2017
Como você testa seu software TDC 2017
Ismael
 
Como ter Entregas Frequentes
Como ter Entregas FrequentesComo ter Entregas Frequentes
Como ter Entregas Frequentes
Ismael
 
JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4
Ismael
 
Conceitos por trás do Ágil
Conceitos por trás do ÁgilConceitos por trás do Ágil
Conceitos por trás do Ágil
Ismael
 
Boas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesBoas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros Macetes
Ismael
 
8 passos para mudança de John Kotter
8 passos para mudança de John Kotter8 passos para mudança de John Kotter
8 passos para mudança de John Kotter
Ismael
 
Curva da Mudança Kubler-Ross
Curva da Mudança Kubler-RossCurva da Mudança Kubler-Ross
Curva da Mudança Kubler-Ross
Ismael
 
DevCamp 2016
DevCamp 2016DevCamp 2016
DevCamp 2016
Ismael
 
7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider Agil7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider Agil
Ismael
 
Law of demeter
Law of demeterLaw of demeter
Law of demeter
Ismael
 
Junit Lambda
Junit LambdaJunit Lambda
Junit Lambda
Ismael
 
Feedback dos Testes
Feedback dos TestesFeedback dos Testes
Feedback dos Testes
Ismael
 
Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - Estrategias
Ismael
 
Refactoring Databases - parte 1
Refactoring Databases - parte 1Refactoring Databases - parte 1
Refactoring Databases - parte 1
Ismael
 

Mais de Ismael (20)

TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão ÁgilTDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
 
Introducao ao Pensamento Sistemico
Introducao ao Pensamento SistemicoIntroducao ao Pensamento Sistemico
Introducao ao Pensamento Sistemico
 
Testes de unidade alem do basico
Testes de unidade alem do basicoTestes de unidade alem do basico
Testes de unidade alem do basico
 
Bluesoft Culture
Bluesoft CultureBluesoft Culture
Bluesoft Culture
 
Como dar e receber feedbacks
Como dar e receber feedbacksComo dar e receber feedbacks
Como dar e receber feedbacks
 
Eficiencia de fluxo
Eficiencia de fluxoEficiencia de fluxo
Eficiencia de fluxo
 
Como você testa seu software TDC 2017
Como você testa seu software  TDC 2017Como você testa seu software  TDC 2017
Como você testa seu software TDC 2017
 
Como ter Entregas Frequentes
Como ter Entregas FrequentesComo ter Entregas Frequentes
Como ter Entregas Frequentes
 
JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4
 
Conceitos por trás do Ágil
Conceitos por trás do ÁgilConceitos por trás do Ágil
Conceitos por trás do Ágil
 
Boas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesBoas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros Macetes
 
8 passos para mudança de John Kotter
8 passos para mudança de John Kotter8 passos para mudança de John Kotter
8 passos para mudança de John Kotter
 
Curva da Mudança Kubler-Ross
Curva da Mudança Kubler-RossCurva da Mudança Kubler-Ross
Curva da Mudança Kubler-Ross
 
DevCamp 2016
DevCamp 2016DevCamp 2016
DevCamp 2016
 
7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider Agil7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider Agil
 
Law of demeter
Law of demeterLaw of demeter
Law of demeter
 
Junit Lambda
Junit LambdaJunit Lambda
Junit Lambda
 
Feedback dos Testes
Feedback dos TestesFeedback dos Testes
Feedback dos Testes
 
Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - Estrategias
 
Refactoring Databases - parte 1
Refactoring Databases - parte 1Refactoring Databases - parte 1
Refactoring Databases - parte 1
 

Introdução PLSQL