Benutzer-Werkzeuge

Webseiten-Werkzeuge


se:datenbankentwicklung

**Dies ist eine alte Version des Dokuments!**

Datenbankentwicklung

Administration

PL/SQL (Schwerpunkt der Klausur)

  • PL/SQL: Procedural Language extension to SQL
    • Bietet eine Blockstruktur für Code an
    • Bietet prozedurale Konstrukte an (Variablen, Kontrollstrukturen etc.)
    • Vorteile
      • Integration in Oracle Tools
      • Modularisierte Anwendungsentwicklung
      • Portabilität des PL/SQL-Codes
      • Exception Handling
        * PL/SQL-Blöcke
    • Aufbau
      • DECLARE: Variablen, Cursor, eigene Exceptions
      • BEGIN: SQL und PL/SQL
      • EXCEPTION: Fehlerbehandlung
      • END
    • Typen
      • Anonymous
      • Procedure
      • Function
    • Speicherort: Server oder Anwendung
  • Variablen
    • [a-zA-Z][a-zA-Z0-9$_#]{0,29}
      * Deklarierung/Initialisierung in ''DECLARE'', Zuweisung in ''BEGIN''
      * ''identifier [CONSTANT] datatype [NOT NULL] [:= | DEFAULT expr];''
      * String-Begrenzung: ''q'!Das ist ein Text!'''    
      * Typen
        * Scalar: ''CHAR, VARCHAR, LONG, INTEGER, BOOLEAN, DATE'' etc.
        * Composite: Zusammengesetzte Variablen aus mehrere Datentypen
        * Reference
        * LOB: Fotos, Filme etc.
        * Nicht-PL/SQL: Bind variables
          * Host-Variablen, die mit ''VARIABLE'' deklariert werden und mit einem führenden '':'' referenziert werden
          * ''SET AUTOPRINT ON''
        * Substitution Variables
          * referenziert mit führendem ''&'': Eingabe zur Laufzeit
          * ''ACCEPT varname PROMPT 'Text'''
        * User Variable: deklariert mit ''DEFINE'', referenziert mit ''&''				 		        
      * ''%TYPE''-Attribut: Datentyp einer Spalte/Variable übernehmen (''identifier table.column_name%TYPE;'')
      * Mögliche Boolean-Werte: ''TRUE, FALSE, NULL'' (!)		 	        

      * Lexikalische Einheiten

    • Folgen von Zeichen, Zahlen, Whitespace und Symbolen
    • Typen: Identifier, Delimiter, Literals, Comments
      * SQL-Funktionen
    • Nicht in PL/SQL verfügbar: DECODE, GROUP-Funktionen
      * SELECT in PL/SQL
    • INTO wird benötigt
    • Abfragen müssen genaue eine Zeile zurückliefern
    • Variablenpriorität: Spaltennamen → lokale Variablen/Parameter → Tabellennamen
      * Cursor
    • Zeiger auf den privaten Speicherplatz des Oracle-Servers
    • Implizit: werden intern vom Oracle-Server erzeugt und verwendet (z.B. bei SQL-Statements)
      • Attributes: SQL%FOUND, SQL%NOTFOUND, SQL%ROWCOUNT
        * Explizit: werden vom Programmierer definiert und verwendet		   

        * Kontrollstrukturen

    • IF THEN - ELSIF - ELSE'
      * ''CASE'' Expression <> ''CASE'' Statement
      * Behandlung von NULL bei booleschen Operationen
      * Schleifen
        * ''LOOP - EXIT WHEN - END LOOP''
        * ''WHILE LOOP - END LOOP''
        * ''FOR IN LOOP - END LOOP''      
        * Nested Loops: Labels ''<<label_name>>''

      * Komplexe Datentypen

    • Records
      • ein oder mehrere Felder (Scalar, Record, INDEX BY)
      • werden üblicherweise eingesetzt, um Tabellenzeilen zu lesen
      • Deklaration mit TYPE
      • einfache Definition mit %ROWTYPE'
    • Collections
      • INDEX BY tables / assoziative Arrays
        • 2 Spalten: Key (int/string) / Value
        • dynamische Länge
        • Zugriff über Index table(1)
        • verfügbare Methoden: EXISTS, COUNT, FIRST, LAST, PRIOR, NEXT, DELETE
            * VARRAYs und Nested Tables

          * Cursors

    • manuelle Aktionen: OPEN, [LOOP], FETCH, [EXIT], CLOSE
    • CURSOR FOR macht alles automatisch
    • Attribute: %ISOPEN, %NOTFOUND, %FOUND, %ROWCOUNT

Web

Modellierung

se/datenbankentwicklung.1220279171.txt.gz · Zuletzt geändert: 2014-04-05 11:42 (Externe Bearbeitung)