Publications par Pierre-Louis BERTHOIN

, Utilisation QAQQINI

Le fichier QAQQINI sert à paramétrer les exécutions SQL pour un travail , et donc à donner des directives spécifiques sur les exécutions de requêtes, pour un travail donné. On ne verra pas ici toutes les options disponibles à ce jour, mais on présentera le principe. Celui qui est utilisé par défaut, c’est celui que […]

, Utilisez une table MQT

Une table de requête matérialisée (MQT Materialized Query Table) est une table dont la définition est basée sur le résultat d’une requête. Les données contenues dans un MQT sont dérivées d’une ou plusieurs tables sur lesquelles la définition de la table de requête matérialisée est basée. Cette solution est assez peu utilisée sur l’IBMi mais […]

, Génération CSV à partir de SQL

Il existe plusieurs méthodes pour faire du CSV, la solution la plus connue est la commande CPYTOIMPF. Les procédures SQL peuvent offrir une alternative intéressante dans certains cas, voici un exemple. Cette exemple utilise « Dynamic Compound Statement » avec la procédure QSYS2.IFS_WRITE_UTF8 quauoopt est le fichier des options PDM BEGIN— Génération fichier + entêteCALL QSYS2.IFS_WRITE_UTF8(PATH_NAME =>’/tmp/qauoopt.csv’,LINE […]

, , Joblog pending

Sur votre système, il peut rester des logs à l’état pending, ce n’est pas normal, c’est des logs qui ne sont pas accessibles, mais qui sont là … Vous pouvez facilement regarder cette information grâce à la vue QSYS2.SYSTEM_STATUS_INFO Vous devez d’abord vérifier la valeur système qui indique la production de ces logs.c’est QLOGOUTPUT qui […]

, Sauvegarde des objets modifiés

Vous connaissez tous les commandes SAVLIB LIB(&LIB), pour sauvegarder une bibliothèque et ses objetsSAVOBJ OBJ(*ALL) LIB(&LIB), pour sauvegarder tous les objets de votre bibliothèque il existe une commande qui permet de ne sauvegarder que les objets modifiés, c’est la commande SAVCHGOBJSAVCHGOBJ OBJ(*ALL) LIB(&LIB) REFDATE(&DATREF) REFTIME(&HREREF) Vous devrez indiquer une date/heure qui va servir de limite […]

, , Placer un job dans QCTL

Comment transférer un job dans qctl Il peut être important de lancer un job qui tourne même quand le système est en mode restreint Nous supposerons bien sûr que le sous-système de contrôle est QCTL. 1) Un job batch il suffit d’indiquer la jobq QCTL dans le SBMJOB exemple : Vous avez une commande qui […]

, , , Préciser la bibliothèque dans un SELECT INTO

Vous avez dans un programme RPGLE un select into en SQL à faire, mais vous devez choisir la bibliothèque ou se trouve le fichier ! Voici 3 solutions pour éviter le hard codage 1ére solution Cette solution est plus adaptée à un curseur. Formater une variable exemple sqlstm sqlstm = ‘select votrezone from ‘ + […]

, , Zones numériques étendues

Voici une petite expérience à faire sur les zones étendues Commençons par créer un fichier PF comme ceci A R TESTAFA NUMERO 5A NOM 30A PRENOM 30 Compilez-le on lui met des données par exemple par SQL INSERT INTO GDATA/TESTA VALUES(‘AAAAA’, ‘Carlsen’, ‘Magnus’)INSERT INTO GDATA/TESTA VALUES(‘BBBBB’, ‘Vachier-Lagrave’, ‘Maxime’)INSERT INTO GDATA/TESTA VALUES(‘CCCCC’, ‘Firouzja’, ‘Alireza’) Si on […]

, Travail à démarrage automatique

Un job à démarrage automatique, c’est un travail qui démarre en même temps que votre sous-système, soit pour initialiser quelque chose, soit pour se mettre en attente d’événements à traiter. Vous en connaissez au moins 2 Le QSTRUP C’est le programme indiqué dans la valeur système QSTRUPPGM et il est lancé par votre sous système […]

, , , Debuguer du SQL

Vous voulez avoir des informations sur des exécutions SQL. La meilleure méthode est de prendre la requête que vous voulez analyser et de l’exécuter dans Visual Explain. Mais ce n’est pas toujours possible , dans le cas d’une chaine avec du SQL embarqué . Si vous avez fait du SQL statique vous pouvez avoir des […]