IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JCL - SORT Discussion :

Variabilisation dans un JCL


Sujet :

JCL - SORT

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Variabilisation dans un JCL
    Bonjour

    J'essaye de variabliser les éléments en rouges dans ce JCL avec la commande SET je sais que dans une sysin c'est pas possible.
    Est ce qu'il n'y aurai pas une solution de contournement ??
    Merci pour votre aide

    Cordialement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    //Jobname JOB PERMS,'REQUETE',CLASS=F,MSGCLASS=X
    //*                                                                    
    //DSNTEP2  EXEC PGM=IKJEFT1B,DYNAMNBR=20                               
    //SYSTSPRT  DD  SYSOUT=*                                               
    //SYSPRINT  DD  SYSOUT=*                                               
    //*                                                                    
    //SYSTSIN  DD *                                                        
     DSN S(DB2*)                                                           
     RUN PRO (DSNTEP2) PLAN (DSNTEP2) -                                    
        LIB ('*************')                                
     END                                                                   
    //*                                                              
    //SYSIN    DD *                                                  
      SELECT COUNT(*),                                               
        FROM creator.table_name A, creator.table_name B                          
      WHERE A.**=B.**
         AND A.DATE1 >= '20071022'                                
         AND A.DATE2 <= '20071102'                                
         AND A.**  IN                                           
               ('CHAMP1', 'CHAMP2')                                                                     
      WITH UR;                                                       
    /*

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Bonjour,

    A ma connaissance, ce n'est pas faisable, pour la bonne raison que le contenu de la SYSIN est traité exactement comme celui de n'importe quel fichier (mis à part le fait que dans les programmes, les ordres d'entrée/sortie ne sont pas les mêmes).

    D'ailleurs, rien n'empêche de mettre un fichier catalogué en SYSIN et une carte DD* pour un autre fichier. Donc le JES ne peut pas aller voir à l'intérieur.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Re,

    J'ai essayé en mettant ma requette SQL dans membre a par mais c'est pareil.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par Bruno LAURENT Voir le message
    Re,

    J'ai essayé en mettant ma requette SQL dans membre a par mais c'est pareil.
    Mais comment comptes-tu générer les paramètres que tu souhaites insérer dans ta requête ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    et bien en mettant un set en debut du JCL car j'etais resté sur cette idée mais sur tu connais autre chose je suis prenneur
    tu as une autre idée ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par Bruno LAURENT Voir le message
    et bien en mettant un set en debut du JCL car j'etais resté sur cette idée mais sur tu connais autre chose je suis prenneur
    tu as une autre idée ?
    Je pose la question parce que :
    - si c'est pour un JCL de TEST, alors tu peux faire un simple CHANGE dans ton JCL ;
    - si c'est pour de la PROD, il faut prévoir une saisie au lancement du JOB (c'est faisable par exemple sur OPC), mais là on retombre sur le problème initial : il faudrait un premier STEP avec un mini-programme qui récupère des PARM et crèe le fichier qui servira de SYSIN au STEP suivant.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    c'est pas pour un job de test ou de prod c'est que j'ai un dizaine de job toutes les semaine que dois passer et ceci sur 3 environments differents soit 30 jobs donc et c'est tout à faire à la mano car je n'ai pas droits de les faire passer par un ordonnanceur ;( c'est pour ça que je suis en train de reflechir pour essayer d'avoir le moins de modifications à faire dans mes jobs.
    par rapport a ton mini programme aurais-tu un exemple ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par Bruno LAURENT Voir le message
    par rapport a ton mini programme aurais-tu un exemple ?
    Non, je n'ai pas ça sous la main, mais tu peux le concevoir de la manière suivante :

    Dans chaque environnement, tu gères un fichier paramètres (si tu as 10 JOBs par environnement, il peut y avoir 10 enregs, 1 par JOB).

    Ton programme lit ce fichier, et intègre les paramètres avec des STRING dans un texte prédéfini, et crèe un fichier en sortie pour chaque enregistrement en entrée.

    Puis 10 STEP d'éxécution tels que tu les as donnés au départ, avec chacun des 10 fichiers en SYSIN.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    et ça marcherai avec des sysin ?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par Bruno LAURENT Voir le message
    et ça marcherai avec des sysin ?
    Tu veux dire de mettre une SYSIN à la place du fichier de paramètres. Oui, bien sûr, pourquoi pas ?

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    ok je vais chercher un exemple et des que j'ai une reponse qui fonctionne je la mettrais en ligne

    bonne soirée

    Merci encore pour l'aide

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par Bruno LAURENT Voir le message
    ok je vais chercher un exemple et des que j'ai une reponse qui fonctionne je la mettrais en ligne
    Oui, ça sera sûrement utile à d'autres

    Si tu choisis de passer par une SYSIN, les accès se font par l'ordre ACCEPT (au lieu de READ), et tu n'as pas à faire d'OPEN, de CLOSE, ni de définition de fichier.

    De mémoire, la syntaxe est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ACCEPT ma-zone FROM SYSIN
    Bonne soirée également.

  13. #13
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    Un moyen assez simple, passer par un REXX qui lit ce qui est passé en PARM et le réécrit sur un fichier temporaire repris dans le SYSIN
    On peut passer jusqu'a 120 caractères en PARM=.
    Il faut prévoir une table de traductions des caractères ,()" pour éviter une interprétation par JES,
    la virgule comme séparateur reste pratique si on veut une continuation dans le champ PARM codé.
    Je n'ai pas testé mais ça donnerait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    - Le REXX : 
    /* SETVP *********************************************************** */
    /* CREATION D'UN FICHIER DEPUIS LE PARM COMMUNIQUE POUR VARIABILISER */ 
    /* LE SYSIN DU STEP SUIVANT. LA ',' EST UTILISEE COMME SEPARATEUR DE */
    /* LIGNE. UN BLANC EST INSERE EN COLONNE 1. + TRADUCTION DES "()',"  */
    /* DEPUIS "[]µ:" POUR EVITER PROBLEMES DE SYNTAXE DU CHAMP PARM=     */
    /* (LA VIRGULE COMME SEPARATEUR SIMPLIFIE LA CONTINUATION DU PARM)   */
    /* ***************************************************************** */
    Arg PARM
    do j = 1 to 20
       parse var PARM P1 ',' PARM
       P2 = TRANSLATE(DATAUP,"()',","[]µ:")                     
       TAB.j = ' 'LEFT(P1,79)
       if strip(PARM) = '' then leave
    end
    "EXECIO" j "DISKW DDOUT (STEM TAB. FINIS"
    drop TAB.
    Exit
    
    - Le JCL : 
    //LIBREXX  SET  LIBREX='PDS.REXX.SETVP' 
    //DTEMIN   SET  DETEMIN='20071022'
    //DTEMAX   SET  DETEMAX='20071102'
    //CHAMP1   SET  CHAMP1='CHAMP1'  
    //CHAMP2   SET  CHAMP2='CHAMP2' 
    
    //STEPVAR  EXEC PGM=IRXJCL,REGION=4096K, GENERATION SYSIN 
    // PARM=('SETVP AND A.DATE1 >= µ&DTEMINµ,AND A.DATE2 <= µ&DTEMAXµ',
    //       'AND A.** IN,[µCHAMP1µ: µCHAMP2µ],WITH UR;')
    //SYSEXEC  DD   DSN=&LIBREXX,DISP=SHR
    //DDOUT     DD   DSN=&&TEMP1,DISP=(NEW,PASS),
    //  UNIT=3390,SPACE=(TRK,(1,1)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
    //SYSTSPRT DD   SYSOUT=*
    //SYSTSIN  DD   DUMMY
    //* 
    //DSNTEP2 EXEC PGM=IKJEFT1B,DYNAMNBR=20 
    //SYSTSPRT DD SYSOUT=* 
    //SYSPRINT DD SYSOUT=* 
    //* 
    //SYSTSIN DD * 
    DSN S(DB2*) 
    RUN PRO (DSNTEP2) PLAN (DSNTEP2) - 
    LIB ('*************') 
    END 
    //* 
    //SYSIN DD * 
    SELECT COUNT(*), 
    FROM creator.table_name A, creator.table_name B 
    WHERE A.**=B.**
    //      DD   DSN=&&TEMP1,DISP=(OLD,DELETE)
    //*

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    L'idée d'utiliser REXX me semble excellente, mais pourquoi dans ce cas ne pas écrire une macro qui transforme le fichier paramètre directement en un JCL, sur lequel il ne reste qu'à faire un SUB ?

  15. #15
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    A la relecture du REXX, il y a une erreur de code, il faut lire
    TAB.j = ' 'LEFT(P2,79)
    Sans quoi, par rapport à une macro, l'utilité est simplement d'extérioriser les variables dans le JCL. Accessoirement, le fait de passer tous les sysin en fichiers permet d'utiliser des JCL plus structurés ou imbriqués avec en particulier la possibilité d'utiliser des INCLUDE MEMBER=

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    J'ai écrit une macro qui fait quelque chose de propre il me semble, et n'empêche pas l'utilisation d'INCLUDE MEMBER :

    Le fichier paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    2007-12-31;toto1;titi;
    2008-12-31;tata;tutudd;
    La macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    /* Rexx */
    
    Address ISREDIT
    
    /*----------------------------------------------------------------*/
    /* Cette macro sert à générer un step par ligne du fichier        */
    /* paramètre                                                      */
    /*                                                                */
    /* Auteur : Fremen167                                             */
    /*----------------------------------------------------------------*/
    
    'Macro ()'
    
    'Reset'
    '(NbLig) = LineNum .ZLast'
    'Label' NbLig '= .Fin'
    Nb_Occurs = 0
    Do i=1 to NbLig
        '(Ligne) = Line' i
        Parse Value Ligne With Date ';' Champ1 ';' Champ2 ';'
        Ligne = '//*'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = '//DSNTEP' !! Right(I, 2, '0')
        Ligne = Ligne !! ' EXEC PGM=IKJEFT1B,DYNAMNBR=20'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = '//SYSTSPRT DD SYSOUT=*'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = '//SYSPRINT DD SYSOUT=*'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = '//*'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = '//SYSTSIN DD *'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'DSN S(DB2*)'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'RUN PRO (DSNTEP2) PLAN (DSNTEP2) -'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'LIB (£*************£)'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'END'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = '//*'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = '//SYSIN DD *'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'SELECT COUNT(*),'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'FROM creator.table_name A, creator.table_name B'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'WHERE A.**=B.**'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'AND A.DATE1 >= £2007-10-22£'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'AND A.DATE2 <= £' !! Date !! '£'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'AND A.** IN'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = '(£' !! Champ1 !! ', £' !! Champ2 !! '£)'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = 'WITH UR;'
        "Line_After .ZLast = '"!!Ligne!!"'"
        Ligne = '/*'
        "Line_After .ZLast = '"!!Ligne!!"'"
    
    End
    'X All p"=" 1 .ZFirst .Fin'
    'Del All X'
    T1 = '//Jobname JOB PERMS,'REQUETE',CLASS=F,MSGCLASS=X'
    T2 = '//*'
    "Line_Before .ZFirst = '"!!T2!!"'"
    "Line_Before .ZFirst = '"!!T1!!"'"
    "C All £ '''"
    "C All ² '''"
    Le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    //Jobname JOB PERMS,REQUETE,CLASS=F,MSGCLASS=X
    //*
    //*
    //DSNTEP01 EXEC PGM=IKJEFT1B,DYNAMNBR=20
    //SYSTSPRT DD SYSOUT=*
    //SYSPRINT DD SYSOUT=*
    //*
    //SYSTSIN DD *
    DSN S(DB2*)
    RUN PRO (DSNTEP2) PLAN (DSNTEP2) -
    LIB ('*************')
    END
    //*
    //SYSIN DD *
    SELECT COUNT(*),
    FROM creator.table_name A, creator.table_name B
    WHERE A.**=B.**
    AND A.DATE1 >= '20071022'
    AND A.DATE2 <= '2007-12-31'
    AND A.** IN
    ('toto1, 'titi')
    WITH UR;
    /*
    //*
    //DSNTEP02 EXEC PGM=IKJEFT1B,DYNAMNBR=20
    //SYSTSPRT DD SYSOUT=*
    //SYSPRINT DD SYSOUT=*
    //*
    //SYSTSIN DD *
    DSN S(DB2*)
    RUN PRO (DSNTEP2) PLAN (DSNTEP2) -
    LIB ('*************')
    END
    //*
    //SYSIN DD *
    SELECT COUNT(*),
    FROM creator.table_name A, creator.table_name B
    WHERE A.**=B.**
    AND A.DATE1 >= '20071022'
    AND A.DATE2 <= '2008-12-31'
    AND A.** IN
    ('tata, 'tutudd')
    WITH UR;
    /*

  17. #17
    Membre averti
    Femme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 179
    Points : 350
    Points
    350
    Par défaut
    si tu transformes ton JCL en PROC, tu pourras utiliser des variables sans problème.

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Bruno LAURENT Voir le message
    Bonjour

    J'essaye de variabliser les éléments en rouges dans ce JCL avec la commande SET je sais que dans une sysin c'est pas possible.
    Est ce qu'il n'y aurai pas une solution de contournement ??
    Merci pour votre aide

    Cordialement

    //Jobname JOB PERMS,'REQUETE',CLASS=F,MSGCLASS=X
    //*
    //DSNTEP2 EXEC PGM=IKJEFT1B,DYNAMNBR=20
    //SYSTSPRT DD SYSOUT=*
    //SYSPRINT DD SYSOUT=*
    //*
    //SYSTSIN DD *
    DSN S(DB2*)
    RUN PRO (DSNTEP2) PLAN (DSNTEP2) -
    LIB ('*************')
    END
    //*
    //SYSIN DD *
    SELECT COUNT(*),
    FROM creator.table_name A, creator.table_name B
    WHERE A.**=B.**
    AND A.DATE1 >= '20071022'
    AND A.DATE2 <= '20071102'
    AND A.** IN
    ('CHAMP1', 'CHAMP2')
    WITH UR;
    /*
    Bonjour,

    J'ai la réponse à ton besoin car j'ai moi aussi du procéder ainsi:
    Ceci se passe en 3 temps:

    1- tu codes un morceau de jcl qui va construire ta requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //*-----------------------------------            
    //* FORMATAGE DE LA SQL DYNAMIQUE                 
    //*-----------------------------------            
    //DYNSQL01 EXEC PGM=SY00011,                      
    // PARM=('&date1','&date2','&champ1','&champ2')                     
    //*                                               
    //DD00011A DD DISP=SHR,                           
    //            DSN=bibliotheque(membre de ta requete à contruire)
    //*                                               
    //DD00011S DD DISP=(NEW,PASS,DELETE),             
    //            DSN=&&DYNSQL01,                     
    //            SPACE=(TRK,(1,1),RLSE),             
    //            UNIT=TVIO                           
    //*                                               
    //SYSOUT   DD SYSOUT=*                            
    //CEEDUMP  DD SYSOUT=E
    2- un morceau de JCL qui va lancer ta requete (toujours dans le même JCL):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //STEP2 EXEC DB2TEP2,SSID=DBG2   
    //SQL.SYSPRINT DD SYSOUT=*       
    //SQL.SYSIN DD DISP=(OLD,DELETE),
    //          DSN=&&DYNSQL01       
    //*
    3- le corps de ta requete, à mettre dans ta bibliotheque(membre de ta requete à contruire):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT COUNT(*),                                               
        FROM creator.table_name A, creator.table_name B                          
      WHERE A.**=B.**
         AND A.DATE1 >= '&date1'                                
         AND A.DATE2 <= '&date2'                                
         AND A.**  IN                                           
               ('&CHAMP1', '&CHAMP2')                                                                     
      WITH UR;                                                       
    /*

  19. #19
    Membre averti
    Femme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 179
    Points : 350
    Points
    350
    Par défaut
    Bonjour,
    je suis curieuse... c'est quoi cet utilitaire PGM=SY00011? je ne connais pas du tout

  20. #20
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Citation Envoyé par xfanx Voir le message
    ... je suis curieuse... c'est quoi cet utilitaire PGM=SY00011? je ne connais pas du tout
    Je pense que c'est propre au site où travaille magmerlin ... Rien n'est standard dans son exemple, DB2TEP2 n'est pas le produit standard IBM (c'est DSNTEP2) ... sans doute un clone de DSNTEP2 ...

    A mon humble avis, sa solution n'est pas généralisable ...

Discussions similaires

  1. Passage de variable à une carte SYSIN dans un JCL
    Par marti dans le forum JCL - SORT
    Réponses: 8
    Dernier message: 29/08/2017, 20h48
  2. Envoie mail dans un JCL variabilisé
    Par magfred03 dans le forum JCL - SORT
    Réponses: 2
    Dernier message: 23/12/2010, 13h16
  3. Gestion affichage display dans un JCL
    Par magfred03 dans le forum JCL - SORT
    Réponses: 1
    Dernier message: 27/10/2009, 18h40
  4. Variabilisation dans un JCL
    Par Bruno LAURENT dans le forum JCL - SORT
    Réponses: 3
    Dernier message: 29/09/2008, 23h17
  5. Instruction dans un JCL
    Par soli.f dans le forum JCL - SORT
    Réponses: 4
    Dernier message: 29/10/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo