Oracle PL /SQL er en prosessuell språk som er en forlengelse av SQL , eller strukturert spørrespråk . Bruk PL /SQL for å oppnå de ønskede resultater når standarden DML , eller Datamanipuleringsspråk eller velg uttalelser kan ikke. Prosedyrer, funksjoner , utløsere og pakker er fire forskjellige typer av lagrede gjenstander eller lagrede programmer skrevet i PL /SQL. Du må forstå begrepet skape og opprettholde PL /SQL lagrede gjenstander for å optimalisere ytelsen og programmering tid . I denne artikkelen er det fokus på en prosedyre og en funksjon . Instruksjoner
en
Koble til Oracle SQL * Plus ved klikke på " Start", " Alle programmer " og " sqlplus . "
2
Skriv inn brukernavn og passord, og klikk "OK". i Oracle SQL * Plus dialogboksen .
3
Lag en prosedyre . En fremgangsmåte blir samlet og lagret i datakatalog gang . Lagring bare ett eksemplar av overholdt prosedyren reduserer nettverkstrafikk når mer enn én bruker trenger å kalle det. På SQL spørsmål, skriv inn koden .
SQL >
"CREATE OR REPLACE PROSEDYRE update_product_price (
p_product_id I products.product_id % TYPE , etter
p_factor i ANTALL
)
AS
v_product_count INTEGER ;
START
- telle antall produkter med
- levert product_id )
SELECT COUNT ( * )
INTO v_product_count
FRA produkter
HVOR product_id = p_product_id ;
- dersom produktet finnes ( v_product_count = 1 ) så
- oppdatering som produktets prissammenligning
IF v_product_count = 1 og deretter
oppdatere produkter
< p> SET pris = pris * p_factor
HVOR PRODUCT_ID = p_product_id ;
COMMIT ;
END IF ;
UNNTAK
NÅR andre så
rollback ;
END update_product_price ;
/"
Etter prosedyren er kompilert det vil vise" prosedyre skapt "
< . p> Merk: For å kunne kjøre og kaller denne prosedyren, må en produktene tabellen eksisterer i Oracle database med data som er lagret
Bruke " SELECT " kommando og "hvor" -kommandoen til å spørre prisen på produktet nr. 1 . slik at du kan gjøre en sammenligning etter ringer prosedyren. På SQL spørsmål, skriv inn koden
SQL >
"SELECT product_id , product_type_id , navn, beskrivelse , pris FRA produkter
HVOR PRODUCT_ID = 1; " .
resultatene vil vise hele posten, men nedenfor er bare prisen kolonnen for det produktet som er merket som product_id = 1 .
prissammenligning
------- -
19.95
Ring prosedyren update_product_price . På SQL spørsmål, skriv inn koden
SQL >
" CALL update_product_price ( 1 , 1.5) ; " . .
Ring fullført
Resultatet skjermer som Call fullført og prisen for produt_id oppdateres når du bruker SELECT og HVOR kommandoer på SQL prompt
SQL > SELECT Pris fra produkter der PRODUCT_ID = 1 ; .
PRIS
----------
29.93
4
Lag en funksjon. Når du ringer en funksjon fra en uttalelse, må den returnere en verdi. I tillegg til de mange funksjonene leveres ut av boksen med Oracle 10g database, utviklere lage sine egne funksjoner for å øke ytelsen innvirkning. På SQL spørsmål, skriv inn koden .
SQL >
"CREATE OR REPLACE FUNKSJON average_product_price (
p_product_type_id I INTEGER
) RETURN NUMMER
AS
v_average_product_price NUMMER ;
START
SELECT AVG ( pris)
INTO v_average_product_price
FRA produkter
HVOR product_type_id = p_product_type_id ;
RETURN v_average_product_price ;
END average_product_price ; .
/"
Funksjon opprettet
resultatet viser opprettet funksjon og deretter kallet til average_product_price hjelp av SELECT-setningen fra den doble tabellen . På SQL spørsmål, skriv inn koden
SQL >
"SELECT average_product_price ( 1 )
FRA dual ; " .
AVERAGE_PRODUCT_PRICE ( 1 )
------------------------
29.93