Oracle PL /SQL é uma linguagem processual que é uma extensão do SQL , ou a linguagem de consulta estruturada. Use o PL /SQL para obter os resultados desejados quando as declarações DML padrão , ou Data Manipulation Language ou selecione não. Procedimentos , funções , triggers, e pacotes de quatro tipos distintos de objetos armazenados ou programas armazenados , escritos em PL /SQL. Você deve entender o conceito de criar e manter os objetos armazenados PL /SQL para otimizar o desempenho e tempo de programação . Neste artigo, o foco está em um procedimento e uma função. Instruções
1
Ligue para o Oracle SQL * Plus , clicando em " Iniciar", " Todos os Programas " e " SQLPlus ".
2
Digite seu nome de usuário e senha e clique em " OK. " na caixa de diálogo Oracle SQL Plus * .
3
Criar um procedimento . Um procedimento é compilada e armazenadas no dicionário de dados uma vez . Armazenar apenas uma cópia do procedimento cumprido reduz o tráfego de rede quando mais de um usuário precisa de chamá-lo . Na linha de comando SQL , digite o código .
SQL >
"CREATE OR REPLACE PROCEDURE update_product_price (
p_product_id IN products.product_id % TYPE ,
p_factor nO nÚMERO
)
aS
v_product_count INTEGER ;
BEGIN
- contar o número de produtos com o < br >
- product_id fornecido)
SELECT COUNT (*)
INTO v_product_count
DE produtos a partir de
ONDE product_id = p_product_id ;
- se o produto existe ( v_product_count = 1 ), então
- atualização que o preço do produto
IF v_product_count = 1 eNTÃO
uPDATE produtos
preço SET = preço * p_factor
ONDE product_id = p_product_id ;
COMMIT ;
END IF ;
EXCEÇÃO
QUANDO outros, então
ROLLBACK ;
END update_product_price ; .
/"
Após o procedimento é compilado ele irá exibir " Procedimento criado "
Nota: para executar e chamar esse procedimento com sucesso , uma mesa de produtos deve existir no banco de dados Oracle com dados armazenados
Usando o "SELECT " comando e "onde" comando para consultar o preço do produto # 1. para que você possa fazer uma comparação após a chamar o procedimento. Na linha de comando SQL , digite o código
SQL >
"SELECT product_id , product_type_id , nome, descrição , preço FROM produtos
ONDE product_id = 1 ; " . < Br >
os resultados vão mostrar todo o registro , mas listados abaixo é apenas a coluna de preço para o produto que é rotulado como product_id = 1.
pREÇO
------- -
19,95
Chame o update_product_price procedimento. Na linha de comando SQL , digite o código
SQL >
" update_product_price CALL ( 1, 1,5 ); " .
Chamada completada
o resultado. monitores que a chamada completada eo preço para produt_id é atualizado ao usar o SELECT e onde os comandos no prompt do SQL
SQL > preço SELECT FROM produtos ONDE product_id = 1; .
pREÇO < br >
----------
29,93
4
Criar uma função. Ao chamar uma função a partir de uma declaração , ela deve retornar um valor. Além disso, para as muitas funções entregues fora da caixa com o banco de dados Oracle 10g , os desenvolvedores criem suas próprias funções para aumentar o impacto no desempenho. Na linha de comando SQL , digite o código .
SQL >
" CREATE OR REPLACE FUNCTION average_product_price (
p_product_type_id POR INTEIRO
) NÚMERO DE RETORNO < br >
AS
NÚMERO
v_average_product_price ;
BEGIN
SELECT AVG (preço)
INTO v_average_product_price
FROM produtos < br >
ONDE product_type_id = p_product_type_id ;
DEVOLVER v_average_product_price ;
END average_product_price ; .
/"
Função criado
o resultado mostra a função de criar e então a chamada para o average_product_price usando a instrução SELECT na tabela dual. Na linha de comando SQL , digite o código
SQL >
"SELECT average_product_price (1)
FROM dual ; " .
AVERAGE_PRODUCT_PRICE (1)
------------------------
29,93
< br >