Spufi
Spufi (SQL Processing Using File Input) est un logiciel créé par IBM pour s'interfacer avec leur système de gestion de base de données DB2 for z/OS. Il est accessible à partir de TSO/ISPF depuis le menu primaire DB2I.
SPUFI permet l'entrée directe de requêtes SQL dans l'environnement TSO, à l'image d'un client SQL, plutôt que de les intégrer dans un programme.
Utilisation
Bien qu'il s'agisse essentiellement d'un outil interactif, SPUFI fonctionne avec deux datasets (L'équivalent z/OS d'un fichier sur les autres systèmes d'exploitation). Dans l'écran principal de SPUFI (Fig. 1) on spécifie un dataset en entrée (1) et un dataset en sortie (2), ils peuvent être renseignés une fois puis réutilisés autant que désiré.
SPUFI SSID: DSN ===> Enter the input data set name: (Can be sequential or partitioned) 1 DATA SET NAME ... ===> 'MON.DATASET.SQLIN' (1) 2 VOLUME SERIAL ... ===> (Enter if not cataloged) 3 DATA SET PASSWORD ===> (Enter if password protected) Enter the output data set name: (Must be a sequential data set) 4 DATA SET NAME ... ===> 'MON.DATASET.SQLOUT' (2) Specify processing options: 5 CHANGE DEFAULTS ===> YES (Y/N - Display SPUFI defaults panel?) 6 EDIT INPUT ...... ===> YES (Y/N - Enter SQL statements?) 7 EXECUTE ......... ===> YES (Y/N - Execute SQL statements?) 8 AUTOCOMMIT ...... ===> YES (Y/N - Commit after successful run?) 9 BROWSE OUTPUT ... ===> YES (Y/N - Browse output data set?) For remote SQL processing: 10 CONNECT LOCATION ===>
Fig. 1
Une fois l'écran principal validé, l'éditeur ISPF s'ouvre sur le dataset en entrée et permet à l'utilisateur de saisir les requêtes SQL à soumettre. En quittant l'éditeur ISPF, le menu primaire SPUFI réapparaît. Après validation, SPUFI soumet le contenu du dataset.
Le résultat est placé dans le dataset de sortie et l'éditeur ISPF s'ouvre en mode "browse" sur ce dataset permettant à l'utilisateur de lire le résultat.
Comme SPUFI utilise des datasets en entrée et en sortie, il est possible de pré-remplir les requêtes SQL et d'utiliser les résultats en édition en accédant indépendamment aux datasets hors de SPUFI. L'utilisation de datasets permet aussi de conserver un historique des requêtes SQL passés.
Exemple
Requête SQL dans le dataset en entrée
Requête avec commentaire.
File Edit Edit_Settings Menu Utilities Compilers Test Help ------------------------------------------------------------------------------- EDIT MON.DATASET.SQLIN - 01.05 Columns 00001 00072 Command ===> ________________________________________________ Scroll ===> CSR ****** ***************************** Top of Data ****************************** 000001 -- Afficher la liste des employes du departement 'ACHAT' 000002 000003 SELECT NOM, PRENOM, AGE 000004 FROM EMP 000005 WHERE DEPARTEMENT = 'ACHAT' 000006 ORDER BY NOM, PRENOM, AGE;
Résultat dans le dataset en sortie
Résultat type pour cette requête.
Menu Utilities Compilers Help ------------------------------------------------------------------------------- BROWSE MON.DATASET.SQLOUT Line 00000000 Col 001 080 Command ===> ________________________________________________ Scroll ===> CSR ********************************* Top of Data ********************************** ---------+---------+---------+---------+---------+---------+---------+---------+ SELECT NOM, PRENOM, AGE FROM EMP WHERE DEPARTEMENT = 'ACHAT' ORDER BY NOM, PRENOM, AGE; ---------+---------+---------+---------+---------+---------+---------+---------+ NOM PRENOM AGE ---------+---------+---------+---------+---------+---------+---------+---------+ DURIER JULIEN 28 DURIEUX SOPHIE 32 DURIN PIERRE 29 DURMAR MARC 44 DUROCHER LOUISE 36 DSNE610I NUMBER OF ROWS DISPLAYED IS 5 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+---------+---------+---------+---------+---------+