Publications par Pierre-Louis BERTHOIN

, 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 […]

, 5 choses à savoir sur le Reclaim Storage

1) Pourquoi faire un Reclaim Storage Pour corriger des erreurs sur des ressources, suite à des arrets intempestifs ou des dsyfonctionnements :Les objets de QSYSLes fichiers de l’IFSLe catalogue Base de données C’est la commande RCLSTG, elle nécessite de passer le système en mode restreint. 2) Date du dernier Reclaim Storage Elle est indiquée dans […]