You are on page 1of 16

Banco de Dados

PL-SQL

Prof. André Yoshimi Kusumoto


andre_unip@kusumoto.com.br
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL

SQL
Linguagem de comando utilizada para comunicação com o BD;
SQL*PLUS
Ferramenta Oracle que reconhece e executa padrões PL/SQL e
SQL;
PL/SQL
Linguagem procedural que estende o SQL adicionando
aplicações lógicas.
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Interação SQL e SQL*Plus
SQL*Plus Server
Oracle
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Linguagem de processamento de transações.
Extensão da Structured Query Language (SQL)
Permite manipular dados e comandos SQL dentro de blocos
estruturados, e unidades de código procedural

Alguns Benefícios:
Desenvolvimento modularizado
Uso de blocos aninhados
Declaração de identificadores (variáveis, constantes,
cursores)
Uso de controle de estruturas (condicionais, loops)
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Melhorando Performance
Grupo de comandos SQL dentro de um bloco reduz tráfego
de rede

SQL
SQL
Aplicação Outros
SQL

SQL
If .... Then
SQL
Aplicação Else Oracle
SQL
End if
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Declarando uma variável
var[iable] datatype

DATATYPES PRINCIPAIS
VARCHAR2(comprimento) - Conjunto de caracteres (string) de tamanho variável. O
comprimento varia entre um máximo de 2000 caracteres e um mínimo de 1.
NUMBER(p, e) - Representa um número com uma precisão de p e uma escala de e. A
precisão p pode variar entre 1 e 38 e a escala e entre –84 e 127.
LONG - Conjunto de caracteres de tamanho variável com até 2 gigabytes (231
-1 bytes).
DATE - Um valor de data entre 1 de Janeiro de 4712 AC e 31 de Dezembro de 4712 DC.
CHAR(comprimento) - Conjunto de caracteres de tamanho fixo. O comprimento máximo
é de 255 bytes e o comprimento por omissão é de 1 byte.
BLOB - Tipo de dados para conteúdos binários até 4 Gigabytes
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Estrutura do Bloco
DECLARE - Opcional
Variáveis, constantes, cursores

BEGIN - Mandatório
- Estrutura SQL
- Controle PL/SQL

EXCEPTION - Opcional
- Ação a executar no caso de erro

END; - Mandatório
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Construções
Construção Descrição
Blocos Anônimos Bloco PL/SQL embutido em alguma aplicação
Stored | Application Bloco PL/SQL nomeado que aceita parâmetros e pode receber
Procedure ou Função várias chamadas de execução
Triggers de Banco Bloco PL/SQL associado a tabelas do Banco de Dados e que
disparam automaticamente
Triggers de Aplicação Bloco PL/SQL associado a algum evento da aplicação

Nota: Uma função é semelhante a uma procedure, exceto que a primeira deve retornar um
valor enquanto que procedures não.
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Criando uma Procedure
Sintaxe:

PROCEDURE nome
[(parâmetros,...)] --- parâmetros formais
IS
<bloco pl/sql>
END nome;

Sintaxe de parâmetros
parâmetros [IN | OUT | IN OUT] datatype
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Criando uma Procedure
Parâmetro Descrição
IN Argumento padrão
Passa um valor de ambiente de chamada para dentro da Procedure
OUT Deve ser especificado
Retorna um valor de dentro da procedure para o ambiente de chamada
IN OUT Deve ser especificado
Passa um valor de ambiente de chamada para dentro da Procedure e retorna
um valor de dentro da procedure para o ambiente de chamada
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Criando uma Procedure
Crie uma procedure para atualizar o salário de um
empregado a ser especificado pelo usuário:
CREATE OR REPLACE PROCEDURE muda_salario
(v_cpf in number, v_novo_sal in number)
is
begin
update empregados
set salario= v_novo_sal
where cpf = v_cpf;
commit;
end;
/
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Criando uma Função
Sintaxe:

FUNCTION nome
[(parâmetro,...)]
RETURN datatype
IS
<bloco pl/sql>;
END nome;
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Criando uma Função
Exemplo

function taxa
(v_valor in number)
return number
is
begin
return (v_valor * .7);
End;
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

PL-SQL
Prática
Crie a seguinte tabela Funcionario:
CodFuncionario Long
Nome Varchar2(80)
Salario Number(10,2)

Desenvolva uma procedure que aumente os salários de todos os


funcionários em 10%.
Criar uma função para calcular a área de uma circunferência
(π.r²).
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

Operador de Concatenação
Representado por duas barras verticais( || )
Junta colunas ou strings com outras colunas.

Exemplo:
> Select prenome || sobrenome as “Empregados”
from empregados;
Prof. André Y. Kusumoto - andre_unip@kusumoto.com.br

Bibliografia

• Machado, Felipe Nery Rodrigues. Banco de Dados - Projeto e


Implementação, Érica, 2004, 1ª Edição.
• SILBERSCHATZ, Abraham; KORTH, Henry e SUDARSHAN, S.
Sistema de Banco de Dados – São Paulo: MAKRON Books, 1999.
• HEUSER, Carlos Alberto. Projeto de Banco de Dados – Editora
Sagra Luzzatto, 2001, 4ª Edição.

• Notas de aula do Prof. Gustavo Henrique dos Santos


• Silveira, José Marcos Barbosa da. Universidade Paulista, 2008.