Aller au contenu

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ètreTypePar défautSignification
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