Maison  >  Article  >  base de données  >  Quels sont les résultats de l'exécution lorsque des modifications non-SQL sont apportées dans un programme sans BIND ?

Quels sont les résultats de l'exécution lorsque des modifications non-SQL sont apportées dans un programme sans BIND ?

WBOY
WBOYavant
2023-09-06 15:05:02866parcourir

Quels sont les résultats de lexécution lorsque des modifications non-SQL sont apportées dans un programme sans BIND ?

Question : Le programme COBOL-DB2 a été modifié pour augmenter la longueur de la variable de PIC X(5) à PIC X(8). Cependant, aucune modification n'a été apportée au SQL du programme. Que se passerait-il si les plans/packages du programme n'étaient pas liés à ces changements ?

Solution

Le changement de longueur variable de PIC X(5) à PIC X(8) n'est pas un changement DB2 et les instructions SQL du programme n'ont pas besoin d'être modifiées. Cependant, nous devons toujours lier son plan/package, sinon nous recevrons le code d'erreur SQL -818 qui indique "L'horodatage x généré par le précompilateur dans le module chargé est différent de l'horodatage de liaison y construit à partir de DBRM z". p>

La raison de cette erreur SQL est la suivante : à chaque exécution d'un programme COBOL-DB2, les horodatages des modules chargés et des packages/DBRM sont comparés. Si la longueur de la variable change dans le programme (et aucun changement SQL) et est compilée, alors le module chargé aura un horodatage nouvellement généré, par contre si BIND n'est pas exécuté, le module chargé aura un horodatage nouvellement généré . Package/DBRM aura un ancien horodatage. Lorsque le programme est exécuté, l'étape JCL qui appelle le programme échoue avec le code d'erreur SQL -818.

Si nous avons un programme COBOL-DB2 dont les instructions SQL ne changeront jamais à l'avenir, nous pouvons précompiler le programme en utilisant l'option LEVEL. Ce qui suit est un exemple d'une étape BIND utilisant l'option LEVEL.

Exemple

//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)
/*

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer