Geavanceerde PL SQL Tutorial

Geavanceerde PL SQL Tutorial


Oracle PL / SQL is een procedurele taal die is een uitbreiding van SQL, of Structured Query Language. Gebruik de PL / SQL om de gewenste resultaten te verkrijgen wanneer de standaard DML, of Data Manipulation Language of SELECT-instructies kan het niet. Procedures, functies, triggers, en pakketten zijn vier verschillende types van opgeslagen objecten of opgeslagen programma's, geschreven in PL / SQL. U moet het concept van het creëren en onderhouden van de PL / SQL opgeslagen objecten om de prestaties te optimaliseren en de programmering tijd te begrijpen. In dit artikel ligt de focus op een procedure en een functie.

instructies

1 Verbinding maken met Oracle SQL * Plus door te klikken op "Start", "Alle programma's" en "SQLPlus."

2 Voer uw gebruikersnaam en wachtwoord in en klik op 'OK'. in de Oracle SQL * Plus dialoogvenster.

3 Maak een procedure. Een procedure verzameld en opgeslagen in de datadictionary keer. Opslaan van slechts één exemplaar van de acht procedure vermindert het netwerkverkeer wanneer meer dan een gebruiker nodig heeft om het te bellen. Op de SQL prompt, voert u de code.

SQL>

"Scheppen of te vervangen PROCEDURE update_product_price (

p_product_id IN products.product_id% TYPE,

p_factor HET AANTAL

)

ALS

v_product_count INTEGER;

BEGINNEN

--count het aantal producten met de

--supplied product_id)

SELECT COUNT (*)

INTO v_product_count

FROM producten

WAAR product_id = p_product_id;

--Als het product bestaat (v_product_count = 1), dan

--update prijs van dat product

IF v_product_count = 1 THEN

UPDATE producten

SET prijs = prijs * p_factor

WAAR product_id = p_product_id;

COMMIT;

STOP ALS;

UITZONDERING

WANNEER ANDEREN THEN

TERUGROLLEN;

END update_product_price;

/ "

Na de procedure wordt opgesteld zal het display "Procedure gecreëerd."

Opmerking: Om succesvol te laten verlopen en noemen deze procedure moet een tabel producten bestaan ​​in de Oracle database met gegevens die zijn opgeslagen.

Met het commando "SELECT" en command "WAAR" om de prijs van het product # 1 te vragen, zodat u een vergelijking na het aanroepen van de procedure kan doen. Op de SQL prompt, voert u de code.

SQL>

"SELECT product_id, product_type_id, naam, beschrijving, prijs FROM producten

WAAR product_id = 1; "

De resultaten zullen de volledige record weer maar hieronder alleen de prijskolom voor het product dat wordt aangeduid als product_id = 1.

PRIJS



19.95

Bel de procedure update_product_price. Op de SQL prompt, voert u de code.

SQL>

"CALL update_product_price (1, 1,5);"

Bel voltooid.

Het resultaat toont dat de Call afgerond en de prijs voor produt_id wordt bijgewerkt wanneer het gebruik van de SELECT en WHERE commando's op de SQL prompt.

SQL> SELECT Prijs vanaf producten WHERE product_id = 1;

PRIJS



29.93

4 Maak een functie. Bij het aanroepen van een functie in een verklaring, moet het een waarde terug te keren. Bovendien, om de vele functies verlost uit de doos met de Oracle 10g-database, ontwikkelaars hun eigen functies om de invloed op de prestaties te vergroten. Op de SQL prompt, voert u de code.

SQL>

"Scheppen of te vervangen FUNCTIE average_product_price (

p_product_type_id IN INTEGER

) RETURN NUMBER

ALS

v_average_product_price NUMBER;

BEGINNEN

SELECT AVG (prijs)

INTO v_average_product_price

FROM producten

WAAR product_type_id = p_product_type_id;

TERUG v_average_product_price;

END average_product_price;

/ "

Functie gemaakt.

Het resultaat toont de gecreëerde functie en vervolgens de oproep aan de average_product_price met behulp van de SELECT-instructie van de dubbele tafel. Op de SQL prompt, voert u de code.

SQL>

"SELECT average_product_price (1)

FROM dual; "

AVERAGE_PRODUCT_PRICE (1)



29.93