Oracle PL /SQL è un linguaggio procedurale che è un'estensione di SQL , o il linguaggio di interrogazione strutturato. Utilizzare il PL /SQL per ottenere i risultati desiderati quando il DML standard o Data Manipulation Language o select non può. Procedure, funzioni , trigger e pacchetti sono quattro tipi distinti di oggetti archiviati o dei programmi memorizzati , scritte in PL /SQL . È necessario comprendere il concetto di creare e mantenere gli oggetti memorizzati PL /SQL per ottimizzare le prestazioni e il tempo di programmazione . In questo articolo , l' attenzione è rivolta a una procedura e una funzione. Istruzioni
1
connettersi a Oracle SQL * Plus facendo clic su "Start ", " Tutti i programmi " e " sqlplus ".
2
Inserisci il tuo nome utente e password , quindi fare clic su "OK . " nella * finestra di dialogo Oracle SQL Plus +.
3
Creare una procedura. Una procedura viene compilato e memorizzato nel dizionario dati una volta . Memorizzazione di una sola copia della procedura rispettato riduce il traffico di rete quando più di un utente ha bisogno di chiamarlo . Al prompt di SQL , immettere il codice .
SQL >
" CREATE OR REPLACE PROCEDURE update_product_price (
p_product_id IN products.product_id % TYPE , Stati
p_factor IN nUMERO
) per
AS
v_product_count INTEGER ;
BEGIN
- contare il numero di prodotti con il < br >
- fornito product_id ) per
SELECT COUNT ( * ) per
INTO v_product_count
DA prodotti
DOVE product_id = p_product_id ;
- se il prodotto esiste ( v_product_count = 1) allora
- aggiornamento che prezzo
prodotto SE v_product_count = 1 allora
prodotti uPDATE
< p > Prezzo SET = prezzo * p_factor
DOVE product_id = p_product_id ;
COMMIT ;
END IF ;
ECCEZIONE
QUANDO altri allora
ROLLBACK ;
END update_product_price ;
/"
Dopo la procedura è compilato verrà visualizzato " Procedura creato "
< . p> Nota: per eseguire correttamente e chiamare questa procedura, una tavola prodotti deve esistere nel database Oracle con i dati memorizzati
Utilizzando il comando " SELECT" e "Dove " comando per interrogare il prezzo del prodotto # 1 . in modo che si può fare un confronto dopo la chiamata della procedura . Al prompt di SQL , immettere il codice
SQL >
"SELECT product_id , product_type_id , nome, descrizione , prezzo FROM prodotti WHERE
product_id = 1; " . < Br >
I risultati verranno visualizzati l'intero record , ma elencati di seguito è solo la colonna prezzo per il prodotto che viene etichettato come product_id = 1 .
pREZZO
------- -
19.95
chiamare la procedura update_product_price . Al prompt di SQL , inserire il codice
SQL >
"CALL update_product_price ( 1 , 1.5); " . .
Chiamata completata
Il risultato display che la chiamata completata e il prezzo per produt_id viene aggiornato quando si utilizza la SELECT e WHERE comandi al prompt SQL
SQL > Prezzo SELECT FROM prodotti WHERE product_id = 1 ; .
prezzo < br >
----------
29.93
4
creare una funzione . Quando si chiama una funzione da una dichiarazione, che deve restituire un valore . Inoltre, per le molte funzioni consegnati fuori dalla scatola con il database Oracle 10g , gli sviluppatori di creare le proprie funzioni per aumentare l'impatto sulle prestazioni . Al prompt di SQL , immettere il codice .
SQL >
" CREATE OR REPLACE FUNCTION average_product_price (
p_product_type_id IN INTEGER
) NUMERO DI RITORNO < br >
AS
NUMERO v_average_product_price ;
BEGIN
SELECT AVG ( prezzo ) per
INTO v_average_product_price
DA prodotti < br >
DOVE product_type_id = p_product_type_id ;
RITORNO v_average_product_price ;
END average_product_price ; .
/"
Funzione creato
il risultato mostra la funzione creata e quindi la chiamata al average_product_price utilizzando l' istruzione SELECT dalla tabella duale . Al prompt di SQL , immettere il codice
SQL >
"SELECT average_product_price ( 1 ) per
da due; " .
AVERAGE_PRODUCT_PRICE ( 1 )
------------------------
29.93
< br >