Créer un fichier séquetiel ou de sous-requête avec HOLD FORMAT SQL_SCRIPT

Comment :

Lorsqu'elle est utilisée dans une requête contre une source de données relationnelle, la commande HOLD FORMAT SQL_SCRIPT génère l'instruction SQL SELECT nécessaire pour exécuter la requête en cours et la stocke dans le dossier de l'application comme fichier avec une extension .sql ainsi que la paire Fichier maîte et Fichier d'accès qui décrit l'ensemble de réponses SQL.

Lorsqu'elle est utilisée dans une requête contre un autre type de source de données, la commande HOLD FORMAT SQL_SCRIPT exécute la requête en cours et stocke les valeurs récupérées dans le dossier de l'application comme fichier séquentiel avec une extension .ftm ainsi que le fichier maître qui décrit les données récupérées.

Vous pouvez utiliser la sortie de HOLD FORMAT SQL_SCRIPT comme fichier cible pour la fonction DB_INFILE. Pour plus d'informations sur la fonction DB_INFILE, consultez le manuel Utiliser les fonctions.

Remarque : une fois que vous disposez du fichier .sql et de son fichier maître d'accompagnement, vous pouvez personnaliser le fichier .sql avec des variables globales du Gestionnaire de dialogue. Vous devez déclarer ces variables globales dans le fichier maître. Pour plus d'informations sur le paramétrage des fichiers maîtres avec des variables globales, consutlez le manuel Description des données en langage WebFOCUS .


Haut de page

x
Syntaxe : Créer un fichier séquentiel ou script SQL avec HOLD FORMAT SQL_SCRIPT
ON TABLE HOLD AS script_name FORMAT SQL_SCRIPT

où :

script_name

Est le nom du fichier .sql ou le fichier .ftm créé à la suite de la commande HOLD FORMAT SQL_SCRIPT.



Exemple : Créer un fichier script SQL avec HOLD FORMAT SQL_SCRIPT

La requête suivante contre la source données relationnelle WF_RETAIL crée un fichier script SQL dans l'application baseapp :

APP HOLD baseapp
TABLE FILE wf_retail
SUM REGION STATECODE
BY REGION NOPRINT BY STATECODE NOPRINT
WHERE REGION EQ 'Central' OR 'NorthEast'
WHERE STATECODE EQ 'AR' OR 'IA' OR 'KS' OR 'KY' OR 'WY' OR 'CT' OR 'MA' OR 'NJ' OR 'NY' OR 'RI'
ON TABLE HOLD AS RETAIL_SCRIPT FORMAT SQL_SCRIPT
END

WF_RETAIL est un exemple de source de données que vous pouvez créer en effectuant un clic droit sur une application sur la console Web du serveur de rapports et en sélectionnant Nouveau puis Exemples à partir du menu contextuel.

Le résultat de cette requête est un fichier script nommé retail_script.sql et un fichier maître et d'accès correspondants.

Le fichier retail_script.sql contient l'instruction SQL SELECT suivante :

SELECT   MAX(T11."REGION") AS E01,  MAX(T11."STATECODE") AS E02  FROM  wrd_dim_geography T11  WHERE  (T11."STATECODE" IN('AR', 'IA', 'KS', 'KY', 'WY', 'CT', 'MA', 'NJ', 'NY', 'RI')) AND  (T11."REGION" IN('Central', 'NorthEast'))  GROUP BY  T11."REGION", T11."STATECODE"

Le fichier maître retail_script.mas suit :

FILENAME=RETAIL_SCRIPT, SUFFIX=DB2     , $
  SEGMENT=RETAIL_SCRIPT, SEGTYPE=S0, $
    FIELDNAME=REGION, ALIAS=E01, USAGE=A15V, ACTUAL=A15V,
      MISSING=ON, $
    FIELDNAME=STATECODE, ALIAS=E02, USAGE=A2, ACTUAL=A2,
      MISSING=ON, $

Le fichier d'accès retail_script.acx suit :

 SEGNAME=RETAIL_SCRIPT, CONNECTION=CON1, DATASET=RETAIL_SCRIPT.SQL, $


Exemple : Créer un fichier séquentiel avec HOLD FORMAT SQL_SCRIPT

La requête suivante contre la source de données EMPLOYEE crée un fichier séquentiel contenant les valeurs récupérées par la requête avec un fichier maître correspondant :

APP HOLD baseapp 
TABLE FILE EMPLOYEE 
PRINT LAST_NAME FIRST_NAME 
WHERE DEPARTMENT EQ 'MIS' 
ON TABLE HOLD AS EMPVALUES FORMAT SQL_SCRIPT 
END

Le fichier séquentiel empvalues.ftm comprend les données suivantes :

SMITH           MARY        JONES           DIANE       MCCOY           JOHN        BLACKWOOD       ROSEMARIE   GREENSPAN       MARY        CROSS           BARBARA     

Le fichier maître empvalues.ftm suit :

FILENAME=EMPVALUES, SUFFIX=FIX     , IOTYPE=BINARY, $ 
  SEGMENT=EMPVALUE, SEGTYPE=S0, $ 
    FIELDNAME=LAST_NAME, ALIAS=E01, USAGE=A15, ACTUAL=A16, $ 
    FIELDNAME=FIRST_NAME, ALIAS=E02, USAGE=A10, ACTUAL=A12, $

WebFOCUS