sql pl als programmeertaal – onze ervaringen
TRANSCRIPT
![Page 1: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/1.jpg)
SQL PL als programmeertaal – Onzeervaringen
GSE Nationale Conferentie NL – 13/10/2011 – Almere
Steven Scheldeman
ABIS Training & [email protected]
![Page 2: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/2.jpg)
Een Situatieschets• ACCA (ABIS Client & Course Administration)
• ISPF Dialog Manager & COBOL
• 20 jaar programmatie=> voortdurende (kleine) aanpassingen
• Vele kleine DB2 queries
• GUI-logica verweven met business-logica
![Page 3: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/3.jpg)
Een Situatieschets• ACCA (ABIS Client & Course Administration)
• ISPF Dialog Manager & COBOL
• 20 jaar programmatie=> voortdurende (kleine) aanpassingen
• Vele kleine DB2 queries
• GUI-logica verweven met business-logica
![Page 4: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/4.jpg)
Een Situatieschets• ACCA (ABIS Client & Course Administration)
• ISPF Dialog Manager & COBOL
• 20 jaar programmatie=> voortdurende (kleine) aanpassingen
• Vele kleine DB2 queries
• GUI-logica verweven met business-logica
![Page 5: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/5.jpg)
Een Situatieschets• ACCA (ABIS Client & Course Administration)
• ISPF Dialog Manager & COBOL
• 20 jaar programmatie=> voortdurende (kleine) aanpassingen
• Vele kleine DB2 queries
• GUI-logica verweven met business-logica
![Page 6: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/6.jpg)
Een Situatieschets• ACCA (ABIS Client & Course Administration)
• ISPF Dialog Manager & COBOL
• 20 jaar programmatie=> voortdurende (kleine) aanpassingen
• Vele kleine DB2 queries
• GUI-logica verweven met business-logica
![Page 7: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/7.jpg)
Een Situatieschets• ACCA (ABIS Client & Course Administration)
• ISPF Dialog Manager & COBOL
• 20 jaar programmatie=> voortdurende (kleine) aanpassingen
• Vele kleine DB2 queries
• GUI-logica verweven met business-logica
![Page 8: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/8.jpg)
Een Situatieschets• ACCA (ABIS Client & Course Administration)
• ISPF Dialog Manager & COBOL
• 20 jaar programmatie=> voortdurende (kleine) aanpassingen
• Vele kleine DB2 queries
• GUI-logica verweven met business-logica
![Page 9: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/9.jpg)
Een Situatieschets• ACCA (ABIS Client & Course Administration)
• ISPF Dialog Manager & COBOL
• 20 jaar programmatie=> voortdurende (kleine) aanpassingen
• Vele kleine DB2 queries
• GUI-logica verweven met business-logica
![Page 10: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/10.jpg)
Een Situatieschets• ACCA (ABIS Client & Course Administration)
• ISPF Dialog Manager & COBOL
• 20 jaar programmatie=> voortdurende (kleine) aanpassingen
• Vele kleine DB2 queries
• GUI-logica verweven met business-logica
![Page 11: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/11.jpg)
Een Situatieschets• ACCA (ABIS Client & Course Administration)
• ISPF Dialog Manager & COBOL
• 20 jaar programmatie=> voortdurende (kleine) aanpassingen
• Vele kleine DB2 queries
• GUI-logica verweven met business-logica
![Page 12: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/12.jpg)
Nieuwe noden, nieuwe aanpak
• ACCA => Administratie op z/OS
• Website
• Online registratie => MyAbis
=> Scheiding GUI / business-logica
![Page 13: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/13.jpg)
Nieuwe noden, nieuwe aanpak
• Business-logica=> Stored Procedure (DB2)
• Onafhankelijk van de GUI’s• Geen nood tot duplicatie• Platform / programmeertaal onafhankelijk
![Page 14: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/14.jpg)
COBOL of SQL PL?
• COBOL:• Code beschikbaar
=> te groot kluwen om rechtstreeks alsStored Procedure op te slaan
• Zéér vertrouwd=> interactie met DB2 goed gedocumenteerd=> code herschrijven voor de SP?=> COBOL niet “eigen aan” DB2
![Page 15: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/15.jpg)
COBOL of SQL PL?
• SQL PL:• Procedural Language
=> selectie, sequentie, iteratie=> evenveel werk als herschrijven in COBOL
• “eigen aan” DB2 versie 9=> toepasbaar op z/OS, LUW=> geen COBOL meer nodig
![Page 16: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/16.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 17: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/17.jpg)
Aandachtspunten & Uitdagingen
• Compilatie
• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 18: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/18.jpg)
Aandachtspunten & Uitdagingen
• Compilatie
• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
COBOL: pre-compile & compile
SQL PL: Create Procedure => automatische “compilatie” => DB2 optimizer => SP & package
![Page 19: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/19.jpg)
Aandachtspunten & Uitdagingen• Compilatie
• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 20: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/20.jpg)
Aandachtspunten & Uitdagingen• Compilatie
• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
SQL code van de SP => slaat op uitvoering SP zelf => vertelt niets over de interne queries en SQL
Eigen RC-systeem (zie pt. 4)
![Page 21: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/21.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes
• Parameters
• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 22: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/22.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes
• Parameters
• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 23: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/23.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes
• Parameters
• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
Alle I/O velden van het ISPF DialogManager Scherm moesten I/Oparameters worden van de SP
![Page 24: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/24.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes
• Parameters
• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 25: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/25.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes
• Parameters
• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
Alle I/O velden van het ISPF DialogManager Scherm moesten I/Oparameters worden van de SP
CRUDP-parameter
![Page 26: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/26.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes
• Parameters
• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 27: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/27.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes
• Parameters
• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors• Performance
Alle I/O velden van het ISPF DialogManager Scherm moesten I/Oparameters worden van de SP
CRUDP-parameter
RC-systeem parameters
![Page 28: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/28.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters
• Fouten-afhandeling
• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 29: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/29.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters
• Fouten-afhandeling
• NULL-waarden• Security• Versioning• Cursors• Performance
SP <=> Batch-programma
echte fout <=> verwachte exceptie
interne “fout”-verwerking zo extensiefmogelijk
![Page 30: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/30.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters
• Fouten-afhandeling
• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 31: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/31.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters
• Fouten-afhandeling
• NULL-waarden• Security• Versioning• Cursors• Performance
SP <=> Batch-programma
echte fout <=> verwachte exceptie
interne “fout”-verwerking zo extensiefmogelijk
RC-systeem: => getal berekend => fout-boodschap uit tabel
![Page 32: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/32.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters
• Fouten-afhandeling
• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 33: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/33.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters
• Fouten-afhandeling
• NULL-waarden• Security• Versioning• Cursors• Performance
![Page 34: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/34.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling
• NULL-waarden
• Security• Versioning• Cursors• Performance
![Page 35: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/35.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling
• NULL-waarden
• Security• Versioning• Cursors• Performance
Oproepende programmeertaal &omgaan met NULLs
Binnenkomende NULLs: => afhandeling door oproeper => afhandeling door SP !!
Uitgaande NULLs: => afhandeling door SP => afhandeling door oproeper !!
![Page 36: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/36.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden
• Security
• Versioning• Cursors• Performance
![Page 37: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/37.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden
• Security
• Versioning• Cursors• Performance
SP is DB2-object => onder controle van DBA => specifieke authorisaties
![Page 38: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/38.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security
• Versioning
• Cursors• Performance
![Page 39: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/39.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security
• Versioning
• Cursors• Performance
DB2 eigen versioning-mechanisme
Gekozen voor een manuele versioning => traditie: development / test => productie => “historische” kopie SP
![Page 40: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/40.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security• Versioning
• Cursors
• Performance
![Page 41: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/41.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security• Versioning
• Cursors
• Performance
Creatie en gebruik analoog aan COBOLcursors
Minder dynamisch dan PL/SQL
Omzetting COBOL – SQL PL cursors=> minimale aanpassingen
Gebruik identiek
![Page 42: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/42.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors
• Performance
![Page 43: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/43.jpg)
Aandachtspunten & Uitdagingen• Compilatie• SQLcodes• Parameters• Fouten-afhandeling• NULL-waarden• Security• Versioning• Cursors
• Performance
Ettelijke queries ter controle: => bedrijven => personen => facturatie => dagprijzen & wisselkoersen
Gigantisch veel data-I/O: => SP houdt dit binnen DB2
![Page 44: SQL PL als programmeertaal – Onze ervaringen](https://reader030.vdocuments.site/reader030/viewer/2022020621/61e71d6ac7bc5749d43adbe7/html5/thumbnails/44.jpg)
Tot slot …SQL PL is geen “gadget”
– Business-logica omgezet naar volwaardigprogramma in SQL PL
– SQL PL bevat alle traditionele bouwstenen van eenprogrammeertaal
– Vergevorderde exception handling– Recursie mogelijk– Volwaardig gebruik van cursors– Data-I/O binnen DB2 => hoge performantie