Was ist PL/SQL ?
12. Juli 2014
„PL/SQL ist eine Prozedurale Erweiterung für die strukturierte Abfragesprache SQL“
oder auch
„Erweiterung der Datenbanksprache (SQL) um prozedurale Programmierung“
SQL ist Mengenorientiert. Das Ergebnis ist immer eine Menge von Tupeln.
WAS fehlt SQL um vollständige Anwendungssysteme zu Programmieren?
- man kann nicht gezielt einzelne tupel bearbeiten
- man kann keine schleifen definieren (oder rekursion.. etc)
- variablen deklarieren
Wozu brauch man PL/SQL?
- um komplexe erweiterungen für SQL zu ermöglichen. Unter verwendung von variablen, methoden, und kontrollstrukturen
- zu steuerung von selbst programmierten abläufen
- wiederverwendbarkeit von Funktionen und Prozeduren
zu deutsch:
Man kann in SQL nur umständlich über Zwischentabellen diverse Abfragen machen. Was sich mit schleifen und Variablen wesentlich einfacher umsetzen ließe. Es gibt einen direkten zugriff auf die Datenbank. Und man kann seine selbstgeschriebenen Prozeduren und Funktionen wiederverwenden.
WAS HAT PL/SQL ZU BIETEN?
[ADA nachempfundene Sprache] (ähnlich wie die fragen zuvor)- Variablen, Konstanten und Datentypen
- Kontrollstrukturen [Bedingungen (IF, CASE, EXIT) und Schleifen (WHILE, FOR, LOOP)]
- Blöcke, Prozeduren, Funktionen und Pakete (anonym block, PROCEDURE, FUNCTION, PACKAGE)
- Fehlerbehandlung (EXCEPTION)
- Einbettung von SQL-Anweisungen
Wie ist PL/SQL angepasst an SQL?
- Die DT sind identisch
- SQL kann normal eingebettet werden
- a) lesen: SELECT INTO <pl var>
- b) schreiben: INSERT INTO VALUES (<pl var/wert>..)
- c) Menge aus DB lesen: DECLARE CURSOR Name IS SELECT .. etc
- Die Funktionen des DBMS werden verwendet
- a) erweiterbarkeit von SQL durch in der DB gespeicherte Prozeduren und Funktionen (CREATE, DROP)
- b) Rechte Verwaltung in Mehrfachanwender umgebung
- c) Ausführung meist auf dem server
Was ist der Nachteil von PL/SQL?
- PL/SQL ist proprietär zum Oracle DBMS
- zu deutsch: Die Programme laufen nur für Oracle-Datenbanken. Wechselt man die Datenbank, wird es relativ kompliziert, die Anwendung umzuschreiben.
Weitere umfassende Informationen über PL/SQL findet ihr hier
Es würde jetzt zu weit gehen, wirklich jede Kleinigkeit hier neu zu formulieren.