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 :

jcl : comparaison de deux fichiers


Sujet :

JCL - SORT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Par défaut jcl : comparaison de deux fichiers
    Bonjour,

    Je souhaite, en jcl, comparer deux fichiers, sur les 5ères positions, et mettre les données non communes, dans un troisième fichier :

    exemple de jcl :

    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
    //SUP    EXEC  PGM=IDCAMS                           
    //SYSPRINT DD  SYSOUT=*                               
    //SYSIN    DD *                                       
        DELETE   nomfic.nodup                    
    /*                                                    
    //STEPDUP EXEC PGM=ICETOOL                            
    //SYSOUT   DD SYSOUT=*                                
    //SYSPRINT DD SYSOUT=*                                
    //TOOLMSG  DD SYSOUT=*                                
    //DFSMSG  DD SYSOUT=*                                 
    //FIC1    DD DSN=nomfic1,DISP=SHR 
    //FIC2   DD DSN=nomfic2,DISP=SHR 
    //FIC3   DD DSN=nomfic.nodup,              
    //         DISP=(,CATLG,DELETE),                      
    //         LIKE=nomfic1           
    //DDIMP0   DD SYSOUT=O,RECFM=F,LRECL=80             
    //TOOLIN DD *                                         
      SELECT FROM(FIC1) TO(FIC2) ON(1,5,CH) NODUPS DISCARD(FIC3)
    /*

    Le problème est que le système copie écrase les données de nomfic2, en les remplaçant par celles de nomfic1, et fic3 est vide.

    Que faut-il mettre comme instruction, dans TOOLIN, pour avoir le résultat attendu ?

    Merci d'avance.

    Twisty.

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

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Par défaut
    Une proposition ... à adapter ...

    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
    //SORT EXEC PGM=SORT
    //* JOIN
    //SYSOUT DD SYSOUT=*
    //SYSIN DD *
     JOINKEYS FILES=F1,FIELDS=(1,5,A)
     JOINKEYS FILES=F2,FIELDS=(1,5,A)
     JOIN UNPAIRED,ONLY
     SORT FIELDS=COPY
    //SORTJNF1 DD *
    AAAAA
    BBBBB
    //SORTJNF2 DD *
    AAAAA
    CCCCC
    //SORTOUT DD SYSOUT=*
    Contenu du SORTOUT :


  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Par défaut sort avec des fichiers existants
    Bonjour,

    Merci pour cette réponse, mais j'ai un code ABENDED S000 U0005, avec des fichiers existants (F1=> nomfic1, disp=shr, F2=>nomfic2,disp=shr).

    En fait, le système ne reconnait pas les instructions JOINKEYS. Serait-ce un problème de version d'OS ou de jcl ?

    Twisty.

  4. #4
    Membre Expert Avatar de bernard59139
    Profil pro
    Retired
    Inscrit en
    Octobre 2006
    Messages
    966
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retired

    Informations forums :
    Inscription : Octobre 2006
    Messages : 966
    Par défaut
    Bonjour

    C'est un problème de version de logiciel de tri.

    JOINKEY date de Novembre 2009 pour DFSORT. SYNCSORT a suivi de peu.
    ==> votre logiciel de tri n'a pas été maj depuis plus d'un an.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Par défaut équivalent de joinkeys avant novembre 2009
    Dans ce cas ,avant novembre 2009, qu'elle est l'instruction qui existait avant JOINKEYS ?

    Sinon, la mise à jour du logiciel de tri ne se fera pas (économie oblige en temps de crise).

    Twisty

  6. #6
    Membre Expert Avatar de bernard59139
    Profil pro
    Retired
    Inscrit en
    Octobre 2006
    Messages
    966
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retired

    Informations forums :
    Inscription : Octobre 2006
    Messages : 966
    Par défaut
    Avec ICETOOL, tu peux essayer ceci:
    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
    //STEPDUP EXEC PGM=ICETOOL                            
    //SYSOUT   DD SYSOUT=*                                
    //SYSPRINT DD SYSOUT=*                                
    //TOOLMSG  DD SYSOUT=*                                
    //DFSMSG   DD SYSOUT=*                                 
    //FIC1     DD DSN=nomfic1,DISP=SHR 
    //         DD DSN=nomfic2,DISP=SHR 
    //FIC2   DD Dummy
    //FIC3   DD DSN=nomfic.nodup,              
    //         DISP=(,CATLG,DELETE),                      
    //         LIKE=nomfic1           
    //TOOLIN DD *                                         
      SELECT FROM(FIC1) TO(FIC2) ON(1,5,CH) NODUPS DISCARD(FIC3)
    /*
    Mais attention, ca ne détecte les doublons que sur l'ensemble des 2 fichiers

  7. #7
    Membre émérite Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Par défaut
    SPLICE implémenté avant JOINKEYS devrait fonctionner, dans ton cas il faudrait faire quelque chose qui ressemble à ç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
    //STEPDUP EXEC PGM=ICETOOL                            
    //SYSOUT   DD SYSOUT=*                                
    //SYSPRINT DD SYSOUT=*                                
    //TOOLMSG  DD SYSOUT=*                                
    //DFSMSG   DD SYSOUT=*                                 
    //FIC1     DD DSN=nomfic1,DISP=SHR 
    //FIC2     DD DSN=nomfic2,DISP=SHR
    //TMP      DD DSN=nomfic.nodup,              
    //            DISP=(MOD,PASS),                      
    //            LIKE=nomfic1
    //OUT      DD DSN=nomfic.OUT,              
    //            DISP=(,CATLG,CATLG),                    
    //            LIKE=nomfic1           
    //TOOLIN DD *
    * ajout ID 'AA' fichier 1 en position 80
      COPY FROM(FIC1) TO(TMP) USING(WRK1)                                         
    * ajout ID 'BB' fichier 2 en position 80
      COPY FROM(FIC2) TO(TMP) USING(WRK2)   
    * Splice fic1 fic2 sur clé 5 première pos + écrasement 1/2 ID
      SPLICE FROM(TMP) TO(OUT) ON(1,5,CH) WITH(80,1) KEEPNODUPS - 
                USING(WRK3)
    /*
    //WRK1CNTL DD *
      INREC OVERLAY=(80:C'AA')
    /*
    //WRK2CNTL DD *
      INREC OVERLAY=(80:C'BB')
    /*
    //WRK3CNTL DD *
      OUTFIL FNAMES=OUT,
          OMIT=(80,2,CH,EQ,C'BA'),
          BUILD=(1,80)
    /*
    //
    Désolé s'il y a qq erreurs, ce n'est pas testé (je suis en déplacement) et c'est saisie depuis mon smartphone.

    .

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Par défaut réponse de bernard59139
    En fait, la solution de bernard59139 donne les enregistrements, en commun, et les écrit deux fois, dans le fichier de sortie. Or, je cherche à avoir les enregistrements, qui ne sont justement pas en commun, dans les deux fichiers.

    Pouvez-vous m'aider ?

    Merci d'avance.

  9. #9
    Membre émérite Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Par défaut
    Le SPLICE que j'ai indiqué devrait répondre à ton besoin.

Discussions similaires

  1. Comparaison de deux fichiers Excel
    Par Fab_lux dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/08/2007, 21h41
  2. comparaison de deux fichiers
    Par john123 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 17/03/2007, 16h38
  3. Comparaison de deux fichiers EXCEL
    Par meufeu dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/10/2006, 22h56
  4. comparaison de deux fichiers textes
    Par chmaichel dans le forum Delphi
    Réponses: 1
    Dernier message: 28/07/2006, 11h35
  5. [langage] Comparaison de deux fichiers
    Par perlgirl dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 16h05

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