Oracle PL /SQL ist eine prozedurale Sprache , die eine Erweiterung von SQL oder die Structured Query Language ist . Verwenden Sie den PL /SQL , um die gewünschten Ergebnisse zu erzielen , wenn die Standard- DML , Data Manipulation Language oder oder select-Anweisungen nicht. Prozeduren, Funktionen , Trigger und Packages gibt vier verschiedene Arten von Objekten gespeichert oder gespeicherte Programme , geschrieben in PL /SQL . Sie müssen verstehen, das Konzept der Schaffung und Erhaltung der PL /SQL gespeicherte Objekte , um die Leistung und die Programmierung zu optimieren. In diesem Artikel liegt der Fokus auf ein Verfahren und eine Funktion . Anleitung
1
zu Oracle SQL * Plus verbinden , indem Sie auf " Start", " Alle Programme " und " SQLPlus . "
2
Geben Sie Ihren Benutzernamen und Ihr Kennwort ein und klicken " OK. " in der Oracle SQL * Plus Dialogfeld .
3
Erstellen Sie eine Prozedur . Eine Prozedur wird erstellt und im Data Dictionary einmal gespeichert. Speichern nur eine Kopie des Verfahrens eingehalten Netzwerkverkehr reduziert , wenn mehr als ein Benutzer benötigt, um es nennen. An der SQL-Eingabeaufforderung , geben Sie den Code ein .
SQL >
" CREATE OR REPLACE PROCEDURE update_product_price (
IN products.product_id % TYPE ,
p_product_id p_factor IN NUMBER
)
AS
v_product_count INTEGER;
BEGIN
- zählen die Anzahl der Produkte mit der
- geliefert product_id )
SELECT COUNT (*)
INTO v_product_count
FROM Artikel WHERE
product_id = p_product_id ;
- wenn das Produkt vorhanden ist ( v_product_count = 1 ), dann
- update , dass das Produkt den Preis
IF v_product_count = 1 THEN
UPDATE Produkte
< p> SET = Preis * p_factor
WHERE product_id = p_product_id ;
COMMIT ;
END IF;
AUSNAHME
WENN ANDERE DANN
ROLLBACK ;
END update_product_price ;
/"
Nach dem Eingriff wird kompiliert wird" Vorgehensweise erstellt "
< . p> Hinweis: Um erfolgreich ausgeführt und rufen Sie diese Prozedur muss eine Produkte -Tabelle in der Oracle Datenbank vorhanden mit gespeicherten Daten
über die "Select "-Befehl und "WHERE "-Befehl , um den Preis des Produktes Nr. 1 abzufragen. so dass Sie tun können, einen Vergleich nach dem Aufruf der Prozedur . An der SQL-Eingabeaufforderung , geben Sie den Code
SQL >
"SELECT product_id , product_type_id , Name, Beschreibung , Preis FROM Artikel WHERE
product_id = 1; " .
die Ergebnisse werden den gesamten Datensatz angezeigt , aber unten aufgeführten ist nur der Preis für die Spalte Produkt, das als product_id = 1 markiert ist.
PREIS
------- -
19.95
Rufen Sie die Prozedur update_product_price . An der SQL-Eingabeaufforderung , geben Sie den Code
SQL >
"CALL update_product_price ( 1, 1,5 )," . .
Rufen abgeschlossen
Das Ergebnis zeigt an, dass der Anruf beendet wurde und die Preise für produt_id wird aktualisiert , wenn Sie die SELECT -und WHERE- Befehle an der Eingabeaufforderung SQL
SQL > SELECT preis FROM WHERE Artikel = 1 product_id ; .
PREIS
----------
29.93
4
erstellen Sie eine Funktion . Beim Aufruf einer Funktion aus einer Erklärung , muss es einen Wert zurückgeben . Zusätzlich zu den vielen Funktionen aus der Box mit der Oracle 10g Datenbank geliefert , erstellen Entwickler ihre eigenen Funktionen , um die Auswirkungen auf die Leistung zu erhöhen. An der SQL-Eingabeaufforderung , geben Sie den Code ein .
SQL >
"CREATE OR REPLACE FUNCTION average_product_price (
IN INTEGER
p_product_type_id ) RETURN NUMBER
AS
v_average_product_price NUMBER ;
BEGIN
SELECT AVG (Preis)
INTO v_average_product_price
FROM Produkte
WHERE product_type_id = p_product_type_id ;
RETURN v_average_product_price ;
END average_product_price ; .
/"
Funktion erstellt
das Ergebnis zeigt die Funktion erstellt und dann den Anruf an die average_product_price mit der SELECT-Anweisung aus dem Dual -Tabelle. An der SQL-Eingabeaufforderung , geben Sie den Code
SQL >
"SELECT average_product_price ( 1) german
FROM dual ; " .
AVERAGE_PRODUCT_PRICE (1)
------------------------
29.93