Aller au contenu

Service SQL IBM i (AS/400) · Fonction scalaire

SYSTOOLS.IFS_PATH

Décomposer un chemin IFS

Extrait une partie d'un chemin IFS (répertoire, nom de fichier, extension…) pour construire un nouveau chemin à côté d'un fichier existant.

À quoi ça sert

Cette fonction scalaire découpe le chemin PATH_NAME et renvoie la partie demandée par SUBSECTION. Dans l'exemple IBM, la sous-section PATH PREFIX donne le répertoire, auquel on ajoute un nouveau nom de fichier.

Elle simplifie le traitement de chemins en SQL, sans fonctions de chaînes difficiles à écrire : produire un fichier de résultat daté dans le même répertoire que le fichier source, par exemple. Elle se combine avec SYSTOOLS.IFS_RENAME pour renommer ou archiver.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

VALUES SYSTOOLS.IFS_PATH( PATH_NAME => '/usr/mydir/prior_resultfile.txt',  
                          SUBSECTION => 'PATH PREFIX') 
    CONCAT 'status_' CONCAT VARCHAR_FORMAT(current date, 'YYMMDD') CONCAT '.txt'

Message obtenu : SQL0204, le programme de service QQQSVREG manque sur notre IBM i de test.

L'exemple d'IBM

Construire le chemin d'un nouveau fichier status_aammjj.txt situé dans le même répertoire que le chemin fourni.

-- Description: Build a path string that represents a new file, status_yymmdd.txt, 
   -- in the same directory as the provided path. 
   VALUES SYSTOOLS.IFS_PATH( PATH_NAME => '/usr/mydir/prior_resultfile.txt',  
                          SUBSECTION => 'PATH PREFIX') 
    CONCAT 'status_' CONCAT VARCHAR_FORMAT(current date, 'YYMMDD') CONCAT '.txt';

Paramètres

ParamètreTypePar défautSignification
PATH_NAME VARCHAR(5000) obligatoire Chemin
SUBSECTION VARCHAR(20) obligatoire Sous-section