Heim > Datenbank > MySQL-Tutorial > Was sind die Ausführungsergebnisse, wenn in einem Programm ohne BIND Nicht-SQL-Änderungen vorgenommen werden?

Was sind die Ausführungsergebnisse, wenn in einem Programm ohne BIND Nicht-SQL-Änderungen vorgenommen werden?

WBOY
Freigeben: 2023-09-06 15:05:02
nach vorne
887 Leute haben es durchsucht

Was sind die Ausführungsergebnisse, wenn in einem Programm ohne BIND Nicht-SQL-Änderungen vorgenommen werden?

Frage: Das COBOL-DB2-Programm wurde geändert, um die Länge der Variablen von PIC X(5) auf PIC X(8) zu erhöhen. Es gibt jedoch keine Änderungen am SQL des Programms. Was würde passieren, wenn die Pläne/Pakete des Programms nicht an diese Änderungen gebunden wären?

Lösung

Die Änderung der Variablenlänge von PIC X(5) zu PIC X(8) ist keine DB2-Änderung und die SQL-Anweisungen im Programm müssen nicht geändert werden. Allerdings müssen wir seinen Plan/sein Paket noch binden, andernfalls erhalten wir den SQL-Fehlercode -818, der besagt: „Der vom Precompiler im geladenen Modul generierte Zeitstempel x unterscheidet sich vom aus DBRM z erstellten Bindungszeitstempel y.“ p>

Der Grund für diesen SQL-Fehler ist wie folgt: Bei jeder Ausführung eines COBOL-DB2-Programms werden die Zeitstempel der geladenen Module und Pakete/DBRM verglichen. Wenn sich die Länge der Variablen im Programm ändert (und keine SQL-Änderungen) und kompiliert wird, erhält das geladene Modul einen neu generierten Zeitstempel. Wenn BIND hingegen nicht ausgeführt wird, erhält das geladene Modul einen neu generierten Zeitstempel . Paket/DBRM wird einen alten Zeitstempel haben. Wenn das Programm ausgeführt wird, schlägt der JCL-Schritt, der das Programm aufruft, mit dem SQL-Fehlercode -818 fehl.

Wenn wir ein COBOL-DB2-Programm haben, dessen SQL-Anweisungen sich in Zukunft nie ändern werden, können wir das Programm mit der Option LEVEL vorkompilieren. Das Folgende ist ein Beispiel für einen BIND-Schritt mit der LEVEL-Option.

Beispiel

//BIND EXEC PGM=IKJEFT01
//STEPLIB DD DSN=DIS.TEST.LOADLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(TB3)
BIND PLAN(PLANA) -
PKLIST(PACKA) -
LEVEL -
ACQUIRE(ALLOCATE) -
ISOLATION (RS)
/*
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas sind die Ausführungsergebnisse, wenn in einem Programm ohne BIND Nicht-SQL-Änderungen vorgenommen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage