SQL PL en SQL/PSM database programmeren

SQL/PSM (SQL/Persistent Stored Modules) is een ISO standaard voor "procedurele logica" in SQL (sinds SQL:1999). SQL/PSM is dus een programmeertaal, vooral gebruikt voor het implementeren van stored procedures, triggers en user-defined functions (UDFs) in verschillende relationele databases.

IBM's SQL PL (gebruikt in Db2) was de eerste commerciële implementatie van SQL/PSM. Ook MySQL en MariaDB gebruiken SQL/PSM voor hun stored procedures, triggers en UDFs; en in PostgreSQL kun je hiervoor de module PL/pgPSM gebruiken.

Jammer genoeg gebruikt Oracle een andere procedurele taal, namelijk PL/SQL (zie cursus PL/SQL database programmeren), waarvoor deze cursus dus niet geschikt is. PL/SQL wordt ook standaard door PostgreSQL gebruikt. Ook Transact-SQL (t-SQL), gebruikt door SQL Server en andere Microsoft-producten, is niet compatibel met SQL/PSM.

SQL/PSM is vooral nuttig bij het creëren van stored procedures, die hierdoor meer en meer de plaats kunnen innemen van applicaties die vroeger vooral geschreven werden in (voor Unix/Linux) Java, C, C++, (voor MS-Windows) Java, C#, (voor z/OS) COBOL, PL/I, REXX. SQL/PSM is zo de programmeertaal geworden die bij uitstek geschikt is om applicatielogica met embedded SQL te integreren. Bij Db2 betekent dit meteen ook dat de hele procedure "statische SQL" is, die dus slechts éénmaal geïnterpreteerd/gecompileerd moet worden en daarna meermaals kan opgeroepen worden: een belangrijk performance-voordeel.

Deze cursus behandelt dus in de eerste plaats de programmeertaal SQL/PSM, waarbij alle syntactische details en mogelijkheden uitgebreid aan bod komen. Uiteraard bekijken we daarbij in detail de interactie tussen de elementen van de programmeer-omgeving (zoals variabelen, program flow, exception handling) en de embedded DML-ingrediënten zoals SELECT-statements of cursors. De cursisten krijgen tijdens de cursus uitgebreid de mogelijkheid om zelf een aantal stored procedures te ontwikkelen met SQL/PSM, naar keuze op Db2, MySQL of MariaDB, om zich zo deze materie eigen te maken.

Na het volgen van deze cursus

  • kennen de deelnemers de basis-syntax van de programmeertaal SQL/PSM, alias SQL PL;
  • kan men nieuwe programma's ontwikkelen, debuggen en uitvoeren;
  • weet men waarop te letten bij het omvormen van bestaande programmas geschreven in een andere programmeertaal;
  • kunnen de cursisten vlot omgaan met cursors en exception handlers.

Kalender

Momenteel zijn er voor deze cursus geen publieke sessies gepland. Graag organiseren we een bedrijfssessie voor u of een extra publieke sessie (bij voldoende belangstelling). Geïnteresseerd? Laat het ons weten.

Doelgroep

Deze cursus is in de eerste plaats bedoeld voor software-ontwikkelaars bij data-communicatie met MySQL, MariaDB of Db2, en die willen leren hoe dit soort programma's nu ook met SQL/PSM kunnen geschreven worden.

Anderzijds zullen ook DBA's met deze cursus de nodige ervaring kunnen opdoen om stored procedures, triggers, scalaire functies en tabelfuncties te bouwen of te deployen. Daarnaast zullen ze ook nuttige ideeën opdoen om een aantal DBA-taken op een eenvoudige manier te automatiseren.

Voorkennis

Enige ervaring met SQL en met één van de volgende RDBMS is gewenst: hetzij Db2 (cf. Db2 for z/OS basiscursus of Db2 for LUW basiscursus), hetzij MySQL of MariaDB (cf. MySQL & MariaDB basiscursus). Kennis van een andere procedurele programmeertaa kan een voordeel zijn, maar is niet noodzakelijk.

Inhoud

  • Inleiding SQL/PSM
  • Variabelen

declaratie, initialisatie, gebruik; BEGIN ... END -blokken

  • Programma-flow

conditionele structuren IF...THEN...ELSE-structuur; CASE-statement;

iteraties: WHILE..DO-loop • FOR...DO-loop • ITERATE • REPEAT...UNTIL • LOOP • cursor-gebaseerde FOR-loop

  • Werken met database-gegevens; cursor management

SELECT INTO • declaratie en gebruik van cursoren • parametrisatie • insert, delete, update "where current of" cursor

  • Foutenafhandeling

voorgedefinieerde exceptions • applicatief gedefinieerde exception handling • SIGNAL • GET DIAGNOSTICS

  • Procedurele objecten

user-defined scalar functions • SQL stored procedures • triggers • SQL CALL-statement;

mogelijkheden bij parameter-declaratie; "locators"; mogelijke opties zoals "commit on return"

  • Dynamische SQL:

PREPARE en EXECUTE van een dynamisch opgebouwde query

Verloop van de cursus

Klassikale training met praktische oefeningen.

Duur

2 dagen.

Docent

Peter Vanroose.


SESSIE-INFO EN INSCHRIJVEN