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 :

balayage sur un fichier


Sujet :

JCL - SORT

  1. #1
    Membre à l'essai
    balayage sur un fichier
    Bonjour
    j'ai un fichier en entrée , format FB, et je souhaite balayer ce fichier selon matricule pic x(5).
    le fichier contiens 1 millions d'enregistrements

    le bute est d'extraire :

    les matricules de 00001- 50000 dans un fichier1
    les matricules de 50001-70000 dans un fichier2

    le reste je ne prend pas

    est-ce que c'est possible avec un jcl ?
    merci de me donnée un exemple svp

  2. #2
    Expert éminent
    Bonjour, oui c'est possible tu trouveras de nombreux exemples dans cette partie du forum. L'utilitaire est le DFSORT ou ICETOOL. Quelque chose du genre (je n'ai pas moyen de tester) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //COPY EXEC PGM=SORT
    //SYSOUT DD SYSOUT=*
    //SORTIN DD DSN=..,DISP=SHR
    //SYSIN DD *
    SORT FIELDS=COPY
    OUTFIL FILES=1,INCLUDE=(1,5,CH,GT,C'00001',AND,1,5,CH,LT,C'50000')
    OUTFIL FILES=2,INCLUDE=(1,5,CH,GT,C'50001',AND,1,5,CH,LT,C'70000')
    //SORTOF1 DD DSN=...,DISP=(NEW,...
    //SORTOF2 DD DSN=...,DISP=(NEW,...

  3. #3
    Membre expert
    Citation Envoyé par Darkzinus Voir le message
    Bonjour, oui c'est possible tu trouveras de nombreux exemples dans cette partie du forum. L'utilitaire est le DFSORT ou ICETOOL. Quelque chose du genre (je n'ai pas moyen de tester) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //COPY EXEC PGM=SORT
    //SYSOUT DD SYSOUT=*
    //SORTIN DD DSN=..,DISP=SHR
    //SYSIN DD *
    SORT FIELDS=COPY
    OUTFIL FILES=1,INCLUDE=(1,5,CH,GT,C'00001',AND,1,5,CH,LT,C'50000')
    OUTFIL FILES=2,INCLUDE=(1,5,CH,GT,C'50001',AND,1,5,CH,LT,C'70000')
    //SORTOF1 DD DSN=...,DISP=(NEW,...
    //SORTOF2 DD DSN=...,DISP=(NEW,...
    Il me semble que l'opérateur GT c'est " > " mais au sens strict ( pas " >= " ), je prendrais plutôt GE ( " GREATER THAN OR EQUAL TO " ).

    Pareil pour LT vs LE.

  4. #4
    Membre à l'essai
    Merci pour l'exemple

    j'ai changé : FILES par FNAMES, /GT par GE et LT par LE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OUTFIL FNAMES=1,INCLUDE=(1,5,CH,GE,C'00001',AND,1,5,CH,LE,C'50000')
    OUTFIL FNAMES=2,INCLUDE=(1,5,CH,GE,C'50001',AND,1,5,CH,LE,C'70000')

    merci infiniment

  5. #5
    Expert éminent


    Citation Envoyé par Luc Orient Voir le message
    Il me semble que l'opérateur GT c'est " > " mais au sens strict ( pas " >= " ), je prendrais plutôt GE ( " GREATER THAN OR EQUAL TO " ).

    Pareil pour LT vs LE.
    Effectivement, j'avais fait le truc un peu à la va vite sur un exemple à moi qui traînait et mes souvenirs du mainframe.

###raw>template_hook.ano_emploi###