Seminare
Seminare

PL/pgSQL-Programmierung

Seminar - GFU Cyrus AG

Nach dem Seminar können Sie Funktionen, Prozeduren und Trigger in PL/pgSQL entwickeln und bestehenden Code nachvollziehen. Sie verwenden Variablen, Kontrollstrukturen und dynamisches SQL, werten Abfrageergebnisse aus und behandeln Fehler mit aussagekräftigen Meldungen. Sie kennen die Unterschiede zwischen Funktionen und Prozeduren sowie die Bedeutung von Volatilität, Ausführungsrechten und search_path. Wenn Sie den optionalen Praxistag besuchen, können Sie darüber hinaus typische Laufzeitprobleme untersuchen, serverseitigen Code testen und Änderungen als Migration vorbereiten.
Termin Ort Preis*
09.09.2027- 10.09.2027 online 1.320,90 €
09.09.2027- 10.09.2027 Köln 1.320,90 €
02.12.2027- 03.12.2027 online 1.320,90 €
02.12.2027- 03.12.2027 Köln 1.320,90 €

Alle Termine anzeigen

*Alle Preise verstehen sich inkl. MwSt.

Detaillierte Informationen zum Seminar

Inhalte:

Diese Agenda ist auch Bestandteil (4.-5. Tag) des Kurses




  • Grundlagen der Sprache
    • Wo PL/pgSQL läuft - und wie es sich von SQL-Funktionen und Anwendungscode unterscheidet
    • Funktionen und Prozeduren: seit PostgreSQL 11 können Prozeduren selbst COMMIT und ROLLBACK ausführen
    • Blöcke mit DECLARE/BEGIN/END, Verschachtelung, Labels; einmalige Skripte mit DO
    • Typen und Variablen: %TYPE, %ROWTYPE, RECORD, Arrays, zusammengesetzte Typen
    • Parameterarten IN, OUT, INOUT, VARIADIC, Vorgabewerte und die Fallen der Überladung
    • SELECT ... INTO mit und ohne STRICT; FOUND und ROW_COUNT auswerten
    • Rückgaben: RETURN, RETURN NEXT, RETURN QUERY, SETOF, RETURNS TABLE
    • Kontrollfluss
    • IF und CASE
    • LOOP, WHILE, FOR, FOREACH sowie EXIT und CONTINUE
    • Cursor: implizit in der FOR-Schleife, explizit mit FETCH und MOVE
    • REFCURSOR an die Anwendung zurückgeben

  • Dynamische Abfragen (dynamisches SQL)
    • EXECUTE ... USING
    • format() mit %I für Bezeichner und %L für Werte
    • Warum zusammengesetzte Zeichenketten keinen Schutz bieten
    • Fehler abfangen und melden (Fehlerbehandlung)
    • EXCEPTION-Blöcke mit SQLSTATE und SQLERRM
    • RAISE in den Stufen NOTICE, WARNING und EXCEPTION
    • Aussagekräftige Meldungen mit GET DIAGNOSTICS und GET STACKED DIAGNOSTICS
    • Die versteckte Subtransaktion im EXCEPTION-Block und ihre Kosten in Schleifen

  • Planer, Sicherheit, Rechte
    • VOLATILE, STABLE, IMMUTABLE - wozu der Planer diese Einstufung braucht
    • Folgen einer falschen Einstufung für Laufzeit und Ergebnis
    • SECURITY DEFINER oder SECURITY INVOKER
    • search_path als Angriffsfläche und wie man ihn fixiert
    • Trigger
    • Zeitpunkte BEFORE, AFTER, INSTEAD OF; Zeilen- und Anweisungsebene
    • NEW, OLD und die TG_-Variablen
    • Übergangstabellen (REFERENCING ... TABLE) bei Massenänderungen
    • Constraint-Trigger mit DEFERRABLE - Prüfung erst beim Transaktionsende
    • Event-Trigger für DDL
    • Praxisbeispiel: Änderungsprotokoll per Audit-Trigger ohne doppelte Schreiblast

  • Erweiterter Praxistag - Geschwindigkeit und Parallelität (optional)
    • Plan-Caching: generische und spezifische Pläne, plan_cache_mode
    • Weshalb Einzelanweisungen in Schleifen mit der Zeilenzahl um Größenordnungen langsamer werden
    • Schleifen durch mengenbasierte Formulierungen ersetzen
    • Messen mit EXPLAIN (ANALYZE, BUFFERS) und auto_explain
    • Warteschlangen mit FOR UPDATE SKIP LOCKED, Advisory Locks, Deadlocks vermeiden
    • Typische Fehlerquellen: veränderliche Funktionen in Indexausdrücken, stille Typumwandlungen

  • Erweiterter Praxistag - Testen und Ausrollen (optional)
    • Protokollierung mit RAISE im Betrieb
    • Tests mit pgTAP und Laufzeitprofile mit plprofiler an der Übungsumgebung
    • Versionierung von Funktionen und die Tücken von CREATE OR REPLACE
    • Änderungen als Migration ausliefern

Dauer/zeitlicher Ablauf:
2 Tage
Zielgruppe:
Das Seminar richtet sich an Datenbankentwickler, die Logik in die Datenbank verlagern, an Anwendungsentwickler, die Funktionen und Trigger pflegen, sowie an Datenbankadministratoren, die PL/pgSQL-Code beurteilen und ausrollen. Auch Umsteiger aus T-SQL oder PL/SQL sind angesprochen.

Teilnahmevoraussetzungen


Sie benötigen sichere SQL-Kenntnisse. Programmiererfahrung ist hilfreich, aber nicht erforderlich.
Seminarkennung:
92413
Nach unten
Nach oben
Wir setzen Analyse-Cookies ein, um Ihre Zufriedenheit bei der Nutzung unserer Webseite zu verbessern. Diese Cookies werden nicht automatisiert gesetzt. Wenn Sie mit dem Einsatz dieser Cookies einverstanden sind, klicken Sie bitte auf Akzeptieren. Weitere Informationen finden Sie hier.
Akzeptieren Nicht akzeptieren









Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha



Bei der Verarbeitung Ihrer personenbezogenen Daten im Zusammenhang mit der Kontaktfunktion beachten wir die gesetzlichen Bestimmungen. Unsere ausführlichen Datenschutzinformationen finden Sie hier. Bei der Kontakt-Funktion erhobene Daten werden nur an den jeweiligen Anbieter weitergeleitet und sind nötig, damit der Anbieter auf Ihr Anliegen reagieren kann.







Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha