Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

PL/SQL - Kurze Einführung -. 15. April 2004Übung Data Warehousing: PL/SQL 2 Was fehlt noch? Konzept einer PL/SQL-Sprache in DB ausführlicher PL/SQL und.

Ähnliche Präsentationen


Präsentation zum Thema: "PL/SQL - Kurze Einführung -. 15. April 2004Übung Data Warehousing: PL/SQL 2 Was fehlt noch? Konzept einer PL/SQL-Sprache in DB ausführlicher PL/SQL und."—  Präsentation transkript:

1 PL/SQL - Kurze Einführung -

2 15. April 2004Übung Data Warehousing: PL/SQL 2 Was fehlt noch? Konzept einer PL/SQL-Sprache in DB ausführlicher PL/SQL und Ablauf Konkrete Beispiele

3 15. April 2004Übung Data Warehousing: PL/SQL 3 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche bekannten Konzepte können verwendet werden: Funktionen/ Prozeduren, Abfragen/bedingte Ausführung, Schleifen, etc.

4 15. April 2004Übung Data Warehousing: PL/SQL 4 Konzept Tight integration –DDL / DML: einfach & effizient Stored procedures –Verwendung in SQL Statements –dynamisches SQL Security –Kein direkter Zugriff durch Clients –User benutzen stored procedures

5 15. April 2004Übung Data Warehousing: PL/SQL 5 Programmdateien Programme können in Dateien abgelegt werden Ausführung eines Programmes in Programmdateien müssen mit einer Leerzeile enden

6 15. April 2004Übung Data Warehousing: PL/SQL 6 PL/SQL-Programme.. bestehen aus Blöcken, welche ineinander verschachtelt sein können: DECLARE.. /* Variablen-&Typdeklarationen */ BEGIN.. /* Programmcode, Funktionen.. */ EXCEPTION.. /* Exception-Handling */ END;

7 15. April 2004Übung Data Warehousing: PL/SQL 7 SQL in PL/SQL Erlaubte SQL-Statements: – select, insert, delete, update + Transaktionen Nicht (direkt) erlaubt – create, drop, alter SELECT hat eine eigene, abgewandelte Form: select into from where ;

8 15. April 2004Übung Data Warehousing: PL/SQL 8 Variablen und Datentypen Alle von Oracle unterstützen Typen + NUMBER, BOOLEAN Ermittlung zur Compilezeit möglich DECLARE name VARCHAR(20); gruppe NUMBER; punktezahl Gruppen.punkte%TYPE;

9 15. April 2004Übung Data Warehousing: PL/SQL 9 Zuweisungen & SQL DECLARE gruppeGruppen.name%TYPE; punktezahlGruppen.punkte%TYPE; BEGIN SELECT name,punkte INTO gruppe, punktezahl FROM Gruppen WHERE punkte <= 10 FOR UPDATE; punktezahl := punktezahl + 1; INSERT INTO Gruppen VALUES (gruppe, punktezahl); END;

10 15. April 2004Übung Data Warehousing: PL/SQL 10 Kontrollflüsse LOOP EXIT WHEN... END LOOP; WHILE LOOP... END LOOP; FOR IN.. LOOP... END LOOP; IF THEN... ELSIF THEN... ELSE... END IF;

11 15. April 2004Übung Data Warehousing: PL/SQL 11 Cursor.. Problem bei erwähnten Zuweisungen von Tabellenwerten: funktioniert nur bei single-row- select Abhilfe: die sogenannten Cursor arbeiten sämtliche Tupel aus dem Ergebnis nacheinander ab

12 15. April 2004Übung Data Warehousing: PL/SQL 12.. Cursor.. DECLARE CURSOR GruppenCursor IS SELECT name,punkte FROM Gruppen WHERE punkte <= 10 FOR UPDATE; BEGIN OPEN Gruppencursor; CLOSE GruppenCursor; END;

13 15. April 2004Übung Data Warehousing: PL/SQL 13.. Cursor LOOP FETCH GruppenCursor INTO gruppe,punktezahl; EXIT WHEN GruppenCursor%NOTFOUND; punktezahl := punktezahl * 2; DELETE FROM Gruppen WHERE CURRENT OF GruppenCursor; INSERT INTO Gruppen VALUES (gruppe,punktezahl); END LOOP;

14 15. April 2004Übung Data Warehousing: PL/SQL 14 Prozeduren & Funktionen CREATE PROCEDURE GruppeEinfuegen( gruppe Gruppen.name%TYPE, punktezahl Gruppen.punkte%TYPE) AS BEGIN /*.. */ END GruppeEinfuegen; /* Hauptprogramm */ BEGIN /*.. */ GruppeEinfuegen('group1',0); /*.. */ END;

15 15. April 2004Übung Data Warehousing: PL/SQL 15 Prozeduren & Funktionen CREATE FUNCTION Quadriere(zahl NUMBER) RETURN NUMBER AS DECLARE q NUMBER; BEGIN q := zahl * zahl; RETURN zahl; END Quadriere; /* Hauptprogramm */ DECLARE r NUMBER; BEGIN r := Quadriere(7); END;

16 15. April 2004Übung Data Warehousing: PL/SQL 16 Prozeduren & Funktionen Anzeige aller Procedures/Functions: select object_type, object_name from user_objects where object_type = 'PROCEDURE' or object_type = 'FUNCTION'; Löschen einer Procedure/Function: drop function ; Überschreiben: CREATE OR REPLACE PROCEDURE.. ;

17 15. April 2004Übung Data Warehousing: PL/SQL 17 Fehlermeldungen Fehlermeldungen sind i.d.R. leider wenig aussagekräftig genauere Beschreibung über show errors procedure ; Anzeige des letzten Fehlers: SHO ERR; Positionsangaben oft ungenau!

18 15. April 2004Übung Data Warehousing: PL/SQL 18 Beispiel DECLARE qty_on_hand NUMBER(5); BEGIN SELECT quantity INTO qty_on_hand FROM inventory WHERE product = 'TENNIS RACKET' FOR UPDATE OF quantity; IF qty_on_hand > 0 THEN UPDATE inventory SET quantity = quantity – 1 WHERE product = 'TENNIS RACKET'; INSERT INTO purchase_record VALUES ('Tennis racket purchased', SYSDATE); ELSE INSERT INTO purchase_record VALUES ('Out of tennis rackets', SYSDATE); END IF; COMMIT; END;


Herunterladen ppt "PL/SQL - Kurze Einführung -. 15. April 2004Übung Data Warehousing: PL/SQL 2 Was fehlt noch? Konzept einer PL/SQL-Sprache in DB ausführlicher PL/SQL und."

Ähnliche Präsentationen


Google-Anzeigen