SlideShare a Scribd company logo
1 of 63
Download to read offline
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

More Related Content

More from 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 ÁgilIsmael
 
Introducao ao Pensamento Sistemico
Introducao ao Pensamento SistemicoIntroducao ao Pensamento Sistemico
Introducao ao Pensamento SistemicoIsmael
 
Testes de unidade alem do basico
Testes de unidade alem do basicoTestes de unidade alem do basico
Testes de unidade alem do basicoIsmael
 
Bluesoft Culture
Bluesoft CultureBluesoft Culture
Bluesoft CultureIsmael
 
Como dar e receber feedbacks
Como dar e receber feedbacksComo dar e receber feedbacks
Como dar e receber feedbacksIsmael
 
Eficiencia de fluxo
Eficiencia de fluxoEficiencia de fluxo
Eficiencia de fluxoIsmael
 
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 2017Ismael
 
Como ter Entregas Frequentes
Como ter Entregas FrequentesComo ter Entregas Frequentes
Como ter Entregas FrequentesIsmael
 
JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4Ismael
 
Conceitos por trás do Ágil
Conceitos por trás do ÁgilConceitos por trás do Ágil
Conceitos por trás do ÁgilIsmael
 
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 MacetesIsmael
 
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 KotterIsmael
 
Curva da Mudança Kubler-Ross
Curva da Mudança Kubler-RossCurva da Mudança Kubler-Ross
Curva da Mudança Kubler-RossIsmael
 
DevCamp 2016
DevCamp 2016DevCamp 2016
DevCamp 2016Ismael
 
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 AgilIsmael
 
Law of demeter
Law of demeterLaw of demeter
Law of demeterIsmael
 
Junit Lambda
Junit LambdaJunit Lambda
Junit LambdaIsmael
 
Feedback dos Testes
Feedback dos TestesFeedback dos Testes
Feedback dos TestesIsmael
 
Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - EstrategiasIsmael
 
Refactoring Databases - parte 1
Refactoring Databases - parte 1Refactoring Databases - parte 1
Refactoring Databases - parte 1Ismael
 

More from 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
 

Recently uploaded

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 

Recently uploaded (8)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Introdução PLSQL