SQL PL database programmeren

Sinds versie 9 heeft Db2 (zowel op z/OS als op LUW) z'n ondersteuning van de SQL "Procedural Language", kortweg SQL PL, gevoelig uitgebreid. Zo worden nu nagenoeg alle syntactische mogelijkheden ondersteund van de SQL-standaard voor procedurele logica binnen SQL. Sinds kort ondersteunt Db2 ook het "ARRAY" datatype, enkel binnen SQL PL.

Ook MySQL (sinds versie 5) en MariaDB ondersteunen SQL PL voor de implementatie van stored procedures, triggers, en user-defined functions (UDFs). Samen met PostgreSQL vervullen Db2, MySQL en MariaDB hiermee een voortrekkersrol bij het implementeren van de "Persistent Stored Modules" (PSM) van de SQL-standaard voor ISO en ANSI (sinds SQL:1999).

Jammer genoeg gebruikt Oracle een andere procedurele taal, namelijk PL/SQL (zie cursus PL/SQL database programmeren), waarvoor deze cursus dus niet geschikt is. Ook Transact-SQL (t-SQL), gebruikt binnen SQL Server, is niet compatibel met SQL PL.

SQL PL 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 z/OS) COBOL, PL/I, REXX, (voor Unix) Java, C, C++, en (voor MS-Windows) Java of C#. SQL PL wordt zo op termijn de programmeertaal bij uitstek 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 moet worden en daarna meermaals kan opgeroepen worden: een belangrijk performance-voordeel.

Deze cursus behandelt dus in de eerste plaats de programmeertaal SQL PL, 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 PL, naar keuze op Db2 voor z/OS, op Db2 voor LUW, op PostgreSQL of op MySQL, om zich zo deze nieuwe materie eigen te maken.

Na het volgen van deze cursus

  • kennen de deelnemers de basis-syntax van de programmeertaal SQL PL;
  • kan men nieuwe programma's ontwikkelen, debuggen en uitvoeren;
  • weet men waarop te letten bij het omvormen van bestaande programma-modules in een andere programmeertaal;
  • kunnen de cursisten zinvol 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? Gelieve dan ABIS te contacteren.

Doelgroep

Deze cursus is in de eerste plaats bedoeld voor applicatie-programmeurs en ontwikkelaars van programmatuur die gebruik maakt van MySQL, PostgreSQL of Db2, en die willen leren hoe dit soort programma's nu ook met SQL PL kunnen geschreven worden.

Ook DBA's zullen met deze cursus de nodige ervaring kunnen opdoen om stored procedures, triggers of user-defined functies 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 hetzij Db2 (cf. Db2 for z/OS basiscursus of Db2 for LUW basiscursus) hetzij MySQL of MariaDB (cf. MySQL & MariaDB basiscursus), hetzij PostgreSQL is gewenst. Kennis van een andere procedurele programmeertaal (zoals COBOL, PL/I, REXX, Java, C, ...) kan een voordeel zijn, maar wordt niet ondersteld.

Inhoud

  • Inleiding SQL PL
  • 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 databank-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.

Reviews

J'ai appris pas mal de choses intéressantes

 
  (, )

Satisfait, explications détaillées sur les chapitres, avec le lien avec le système db2

 
  (, )

Cours très intéressant. Mes objectifs personnels vis à vis de ce cours sont atteints et même dépassés.

 
  (, )

bon pour les bases

 
  (, )

SESSIE-INFO EN INSCHRIJVEN