Lire un fichier multi-membres avec SQL en utilisant un ALIAS SQL
Objectifs :
Lorsque l’on requête un fichier multi-membres avec SQL, par défaut seules les données du premier membre du fichier sont extraites.
Si l’on souhaite accéder aux données d’un membre spécifique, autre que le premier membre du fichier, il faut utiliser un ALIAS SQL.
L’ALIAS va pointer sur un membre en particulier et ce sont alors les données de ce membre auxquelles on accédera lorsque l’on requêtera l’ALIAS.
Un des exemples les plus courants de requête sur des fichiers multi-membres est l’accès aux données des membres d’un fichier source.
Remarques :
- Toute requête de mise à jour ou de suppression sur un ALIAS impactera les données du fichier ciblé.
Un ALIAS n’est pas une copie. - En général un ALIAS répond à un besoin temporaire, il n’est pas destiné à rester présent éternellement dans la base de données.
Il doit donc être supprimé après utilisation avec un DROP ALIAS.
Syntaxe :
Création d’un ALIAS SQL :
CREATE OR REPLACE ALIAS QTEMP.MY_ALIAS FOR MY_LIBRARY.MY_FILE(MY_MEMBER);
L’ALIAS créé est nommé MY_ALIAS, il pointe sur le membre MY_MEMBER du fichier MY_FILE de la bibliothèque MY_LIBRARY.
Accés aux données du membre ciblé par l’ALIAS :
SELECT * FROM QTEMP.MY_ALIAS;
Suppression de l’ALIAS après utilisation :
DROP ALIAS QTEMP.MY_ALIAS;
Exemple d'accés à un membre source avec un ALIAS :
Cet exemple sera basé sur le fichier source QRPGLESRC de la biblitohèque MY_LIBRARY.
Ce fichier source contient 3 membres source :
SELECT SRCSEQ, SRCDAT, CAST(SRCDTA AS CHAR(300) CCSID 297) AS SRCDTA FROM MY_LIBRARY.QRPGLESRC;
Retourne le contenu du premier membre source RPGLE_1.
Pour récupérer les données du second membre source RPGLE_2, il faut utiliser un ALIAS SQL.
CREATE OR REPLACE ALIAS QTEMP.MY_ALIAS FOR MY_LIBRARY.QRPGLESRC(RPGLE_2);
SELECT SRCSEQ, SRCDAT, CAST(SRCDTA AS CHAR(300) CCSID 297) AS SRCDTA FROM QTEMP.MY_ALIAS;
Retourne le contenu du membre source RPGLE_2.
Suppression de l’ALIAS utilisé :
DROP ALIAS QTEMP.MY_ALIAS;