Service SQL IBM i (AS/400) · Fonction scalaire
SYSTOOLS.GENERATE_SPREADSHEET
Générer un tableur depuis des données
Écrit dans l'IFS un fichier tableur (CSV par défaut) à partir d'un fichier de bibliothèque ou d'une requête SQL.
À quoi ça sert
Cette fonction scalaire produit un tableur à l'emplacement PATH_NAME de l'IFS. La source des données est soit un fichier (LIBRARY_NAME et FILE_NAME), soit une requête SQL passée dans SPREADSHEET_QUERY, ou lue dans un fichier de l'IFS (SPREADSHEET_QUERY_IFS).
Le format est choisi par SPREADSHEET_TYPE (csv par défaut) ; COLUMN_HEADINGS règle les en-têtes de colonnes et OVERWRITE le comportement si le fichier existe (REPLACE par défaut). Les paramètres STARTING_SHEET, STARTING_ROW et STARTING_COLUMN permettent de placer les données dans une feuille existante. KILL_DAEMON arrête le démon de génération.
C'est l'équivalent SQL d'un export vers un fichier plat : pratique pour livrer des extractions aux utilisateurs métier.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
VALUES SYSTOOLS.GENERATE_SPREADSHEET(PATH_NAME => '/tmp/jobisql/clients', SPREADSHEET_QUERY => 'SELECT NOM, VILLE, CA FROM JOBISQL.CLIENT ORDER BY CA DESC', SPREADSHEET_TYPE => 'csv', COLUMN_HEADINGS => 'COLUMN')
Ce que l'IBM i a renvoyé le 01/10/2026 (1 ligne au plus) :
| 00001 |
|---|
| 1 |
Données anonymisées : les noms de système, de profils, de
bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma
JOBISQL sont des objets de démonstration créés pour ce site.
L'exemple d'IBM
Créer un tableur contenant les données du fichier A de la bibliothèque MYLIB.
-- Description: Create a spreadsheet that contains the data from MYLIB/A.
VALUES SYSTOOLS.GENERATE_SPREADSHEET(
PATH_NAME => '/usr/fileA_spreadsheet',
FILE_NAME => 'A',
LIBRARY_NAME => 'MYLIB');
Bon à savoir
Préférer la forme avec SPREADSHEET_QUERY pour contrôler exactement les colonnes et leur ordre. Le profil doit avoir le droit d'écrire dans le répertoire de l'IFS visé.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
PATH_NAME |
DOUBLE-BYTE CHAR LARGE OBJECT | obligatoire | Chemin |
SPREADSHEET_QUERY |
VARCHAR(4000) | NULL | Requête SQL fournissant les données du tableur |
LIBRARY_NAME |
VARCHAR(10) | NULL | Nom de la bibliothèque |
FILE_NAME |
VARCHAR(10) | NULL | Nom du fichier |
SPREADSHEET_TYPE |
VARCHAR(4) | 'csv' | Type de tableur à générer |
COLUMN_HEADINGS |
VARCHAR(6) | 'NONE' | En-têtes de colonnes |
SPREADSHEET_QUERY_IFS |
DOUBLE-BYTE CHAR LARGE OBJECT | NULL | Chemin IFS du fichier contenant la requête du tableur |
OVERWRITE |
VARCHAR(7) | 'REPLACE' | Écrasement du contenu existant |
STARTING_SHEET |
INTEGER | NULL | Feuille de départ |
STARTING_ROW |
INTEGER | NULL | Ligne de départ dans la feuille |
STARTING_COLUMN |
VARCHAR(3) | NULL | Colonne de départ dans la feuille |
KILL_DAEMON |
VARCHAR(3) | 'NO' | Arrêt du démon |