Es sieht aus, als ob Sie versuchen, die Attribute eines Datensatzes zu ändern, indem Sie DISP = MOD angeben. Der dokumentierte Zweck von MOD besteht darin, entweder anzugeben, dass der Datensatz existiert und Datensätze an seinem Ende hinzugefügt werden sollen oder ein neuer Datensatz erstellt werden soll.
Es kann jedoch verwendet werden, um die Attribute eines Datasets zu ändern. Ich würde vorschlagen, dass Sie vorsichtig sein müssen, da Sie Ihre Daten leicht beschädigen können. Zum Beispiel könnte es sinnvoll sein, den DCB für eine vorhandene PS zu ändern, aber wenn diese PS-Daten bereits Daten enthalten, können Sie sie beschädigen. Ich habe das nicht versucht, aber ich glaube, dass Sie den Platz vergrößern können, vorausgesetzt, Sie überschreiten nicht 16 Extents. Ich glaube, du kannst sogar eine PS in eine PDS umwandeln, erwarte nicht, dass du die Daten wieder sehen kannst.
Ich denke, der wichtigste Punkt ist, dass es nicht empfohlen wird. Anstatt die Risiken einzugehen, verwenden Sie vielleicht Ihren Job, um den Datensatz mit LIKE zu kopieren und die Dinge zu überschreiben, die Sie ändern möchten. Dann wenn Sie glücklich sind, löschen Sie den alten Datensatz und benennen Sie den neuen auf den alten Namen um.
Die folgenden Beispiele wurden aus dem Speicher erstellt, so dass möglicherweise geringfügige syntaktische Fehler auftreten. Sie müssen SPACE angeben, aber alle anderen Parameter entfernen, die Sie nicht reparieren müssen.
Eg. für PS
//FIXPS EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=XXXXXX.CREATE.GDG,DISP=SHR
//SYSUT2 DD DSN=XXXXXX.CREATE.GDG.NEW,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(10,10,0),RLSE),UNIT=SYSDA,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),
// LIKE=XXXXXX.CREATE.GDG
Eg. für PDS
//FIXPDS EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=XXXXXX.CREATE.GDG,DISP=SHR
//SYSUT2 DD DSN=XXXXXX.CREATE.GDG.NEW,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(10,10,0),RLSE),UNIT=SYSDA,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),
// LIKE=XXXXXX.CREATE.GDG
//SYSUT3 DD UNIT=SYSDA,SPACE=(TRK,(30,30),RLSE)
//SYSUT4 DD UNIT=SYSDA,SPACE=(TRK,(30,30),RLSE)
//SYSIN DD *
C I=SYSUT1,O=SYSUT2
/*
Für weitere Informationen siehe ANZ Parameter in Kapitel 12 des JCL-Referenzhandbuch http://publibz.boulder.ibm.com/epubs/pdf/iea2b6b0.pdf
Könnte helfen, wenn Sie uns auch die I/O-Fehlernummer gaben. Kann nicht helfen, aber beachten Sie, dass Ihre Ausgabe-DSN mit "GDG" endet. Möchten Sie ein Mitglied einer GDG ändern? Wenn dies der Fall ist, müssen Sie die Generationsnummer angeben (relativ oder absolut). – NealB
Nein nein. das DSN ist eine ps-Datei, in der ich die jcl geschrieben habe, um ein gdg zu erstellen. Ich mache nichts, was mit gdg zu tun hat. Und ich erhalte den Fehler I/O Fehler beim Lesen, als ich versuchte, die Datei zu durchsuchen, anzuzeigen, zu bearbeiten und die Option 3.4 in ispf – Pramod