Advanced PL SQL Tutorial

Advanced PL SQL Tutorial


Oracle PL / SQL er en saksbehandlingsspråk som er en forlengelse av SQL, eller strukturert spørrespråk. Bruk PL / SQL for å oppnå de ønskede resultater når standard DML, eller Data Manipulation Language eller velg uttalelser ikke kan. Prosedyrer, funksjoner, utløsere, og pakkene er fire forskjellige typer av lagrede objekter 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 fokus på en prosedyre og en funksjon.

Bruksanvisning

1 Koble til Oracle SQL * Plus ved å klikke på "Start", "Alle programmer" og "sqlplus."

2 Skriv inn brukernavn og passord, og klikk på "OK". i Oracle SQL * Plus dialogboksen.

3 Lag en prosedyre. En prosedyre er kompilert og lagret i data ordlisten én gang. Lagring av bare ett eksemplar av holdt 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,

p_factor i tall

)

SOM

v_product_count INTEGER;

BEGYNNE

count antall produkter med

--supplied product_id)

SELECT COUNT (*)

INTO v_product_count

Fra produkter

HVOR product_id = p_product_id;

-Hvis produktet finnes (v_product_count = 1) og deretter

--update at produktets pris

HVIS v_product_count = 1 THEN

UPDATE produkter

SET pris = pris * p_factor

HVOR product_id = p_product_id;

BEGÅ;

SLUTT OM;

UNNTAK

NÅR andre så

ROLLBACK;

END update_product_price;

/ "

Etter prosedyren er kompilert det vil vise "Prosedyre opprettet."

Merk: For å kunne kjøre og kaller denne prosedyren, må en produkter tabellen finnes i Oracle database med data som er lagret.

Bruke "SELECT" -kommandoen og "der" -kommandoen til å spørre prisen på produktet # 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 oppført nedenfor er bare prisen kolonnen for det produktet som er merket som product_id = 1.

PRIS



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 viser at Call fullført og prisen for produt_id oppdateres når du bruker SELECT og HVOR kommandoer på SQL teksten.

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 som leveres ut av boksen med Oracle 10g database, utviklere lage sine egne funksjoner for å forsterke innvirkningen på ytelsen. På SQL spørsmål, skriv inn koden.

SQL>

"CREATE OR REPLACE FUNKSJON average_product_price (

p_product_type_id I INTEGER

) Returnummer

SOM

v_average_product_price nummer,

BEGYNNE

SELECT AVG (pris)

INTO v_average_product_price

Fra produkter

HVOR product_type_id = p_product_type_id;

TILBAKE v_average_product_price;

END average_product_price;

/ "

Funksjon som er opprettet.

Resultatet viser skapt funksjon og deretter samtalen til average_product_price bruke SELECT uttalelse fra dual tabellen. På SQL spørsmål, skriv inn koden.

SQL>

"SELECT average_product_price (1)

Fra dual; "

AVERAGE_PRODUCT_PRICE (1)



29.93