fr en

Récupérer les informations liées aux procédures SQL avec
QSYS2.SYSPROCS
QSYS2.SYSPARMS

Objectifs :

Il est utile de pouvoir facilement identifier les procédures SQL déjà existantes afin d’éviter de « réinventer la roue ».
En effet, cela permet d’éviter les créations de doublons inutiles mais aussi de faciliter la réutilisation des procédures déjà développées.

Pour cela IBM met à notre disposition des fonctions SQL qui sont très simple à utiliser :

  • QSYS2.SYSPROCS pour lister les procédures SQL
  • QSYS2.SYSPARMS pour lister les paramètres en entrées ou en sortie de chaque procédure SQL

QSYS2.SYSPROCS

QSYS2.SYSPROCS permet de lister les procédures existantes et de retrouver le nombre de paramètres en entrée ou en sortie de chacune d’elles.

Cette fonction permet également de récupérer le script de création de la procédure car il est présent dans la colonne ROUTINE_DEFINITION.

Exemple de requête sur QSYS2.SYSPROCS :

SELECT 
SPECIFIC_SCHEMA,        — Nom court de la bilbiothèque contenant la procédure
SPECIFIC_NAME,            — Nom court de la procédure
ROUTINE_SCHEMA,       — Nom long de la bibliothèque contenant la procédure
ROUTINE_NAME,           — Nom long de la procédure
ROUTINE_CREATED,       — Date et heure de création de la procédure
EXTERNAL_NAME,         — Nom externe de la procéduré
SQL_DATA_ACCESS,       — Type d’accés aux données
IN_PARMS,                     — Nombre de paramètres en entrée
OUT_PARMS,                 — Nombre de paramètres en sortie
ROUTINE_DEFINITION  — Script de création de la procédure
FROM QSYS2.SYSPROCS
WHERE SPECIFIC_SCHEMA = ma_bibliotheque;


QSYS2.SYSPARMS

La fonction QSYS2.SYSPARMS permet, elle, de lister les paramètres des procédures et ainsi de connaitre la définition de chacun de ces paramètres.

Exemple de requête sur QSYS2.SYSPARMS :

SELECT 
SPECIFIC_SCHEMA,                          — Nom court de la bilbiothèque contenant la procédure
SPECIFIC_NAME,                              — Nom court de la procédure
ORDINAL_POSITION,                       — N° d’ordre du paramètre
PARAMETER_MODE,                        — Mode d’utilisation du paramètre ( IN OUT INOUT )
PARAMETER_NAME,                        — Nom du paramètre
DATA_TYPE,                                     — Type du paramétre
NUMERIC_SCALE,                            — Nombre de décimales
NUMERIC_PRECISION,                    — Longueur des paramètres numériques
CHARACTER_MAXIMUM_LENGTH, — Longueur des paramètres non numériques
CCSID,                                             — CCSID
DEFAULT,                                         — Valeur par défaut
IS_NULLABLE                                   — Valeur NULL acceptée YES/NON
FROM QSYS2.SYSPARMS 
WHERE SPECIFIC_SCHEMA = ma_bibliotheque
AND SPECIFIC_NAME = ma_procedure;