Notifications 
Reti­rer tout

[Réso­lu] J’ai une erreur SQL0314 : Posi­tion 13 Nom de la variable VRF_TSMCRT déjà uti­li­sé. Qu’est-ce que cela veut dire ?

Posts
Uti­li­sa­teurs
Reac­tions
100  Vu
0
Début du sujet

Bon­jour, 

A la pré­com­pi­la­tionn j’ai l’er­reur « SQL0314 : Posi­tion 13 Nom de la variable VRF_TSMCRT déjà uti­li­sé. » Je ne la com­prend pas. Ci-des­sous la requête.

  EXEC SQL
    SELECT Cidmcl,
           Coduex,
           Nbatim,
           Nescal,
           Netage,
           Nposit,
           Cbasel,
           Opgmcr,
           Oprfcr,
           Tsmcrt
      INTO :Vrf_Uuid_Lien,
           :Vrf_Coduex,
           :Vrf_Nbatim,
           :Vrf_Nescal,
           :Vrf_Netage,
           :Vrf_Nposit,
           :Vrf_Cbasel,
           :Vrf_Opgmcr,
           :Vrf_Oprfcr,
           :Vrf_Tsmcrt
      FROM Qtemp.Bnxlgp
      WHERE Cidmcl = :Ref_Uuid_Lien; 

Ci-des­sous, le code com­plet pour aider :

// ============================================================
//  RPGUnit test case.
// ============================================================
dcl-proc testMAJ_BEEP export;
  dcl-pi *n end-pi;

  // Valeurs initiales enregistrement existant
  Dcl-s Ini_uuid_lien Char(36);
  Dcl-s Ini_Nbatim Char(2) Inz('01');
  Dcl-s Ini_Nescal Char(2) Inz('01');
  Dcl-s Ini_Netage Char(2) Inz('01');
  Dcl-s Ini_Nposit Char(2) Inz('01');
  Dcl-s Ini_Cbase Char(1) Inz('R');
  Dcl-s Ini_Coduex Packed(8:0) Inz(90000000);
  Dcl-s Ini_Cbasel Char(1) Inz('R');
  Dcl-s Ini_Opgmcr Char(10) Inz('PGMCREAT');
  Dcl-s Ini_Oprfcr Char(10) Inz('PRFCRREAT');
  Dcl-s Ini_Tsmcrt Timestamp Inz(z'2019-11-15-17.03.07.956490');

  Dcl-s Ref_uuid_lien Char(36);
  Dcl-s Ref_Nbatim Char(2) Inz('01');
  Dcl-s Ref_Nescal Char(2) Inz('01');
  Dcl-s Ref_Netage Char(2) Inz('01');
  Dcl-s Ref_Nposit Char(2) Inz('02');
  Dcl-s Ref_Cbase Char(1) Inz('R');
  Dcl-s Ref_Coduex Packed(8:0) Inz(90000000);
  Dcl-s Ref_Cbasel Char(1) Inz('R');
  Dcl-s Ref_Opgmcr Char(10) Inz('PGMCREAT');
  Dcl-s Ref_Oprfcr Char(10) Inz('PRFCRREAT');
  Dcl-s Ref_Tsmcrt Timestamp Inz(z'2019-11-15-17.03.07.956490');
  Dcl-s Ref_Opgmmo Pointer Based(Procedure);
  Dcl-s Ref_Oprfmo Pointer Based(USer);


  Dcl-s Vrf_uuid_lien Char(36);
  Dcl-s Vrf_Nbatim Char(2);
  Dcl-s Vrf_Nescal Char(2);
  Dcl-s Vrf_Netage Char(2);
  Dcl-s Vrf_Nposit Char(2);
  Dcl-s Vrf_Cbase Char(1);
  Dcl-s Vrf_Coduex Packed(8:0);
  Dcl-s Vrf_Cbasel Char(1);
  Dcl-s Vrf_Opgmcr Char(10);
  Dcl-s Vrf_Oprfcr Char(10);
  Dcl-s Vrf_Tsmcrt Timestamp;
  Dcl-s Vrf_Opgmmo Char(10);
  Dcl-s Vrf_Oprfmo Char(10);
  Dcl-s Vrf_Tsmcrt Timestamp;

  Ref_uuid_lien = Genuuid();

  EXEC SQL
    INSERT INTO Qtemp.Bnxlgp(Cidmcl, Coduex, Nbatim, Nescal, Netage,
                             Nposit, Cbasel, Opgmcr, Oprfcr, Tsmcrt)
      VALUES (:Ini_Uuid_Lien,
              :Ini_Coduex,
              :Ini_Nbatim,
              :Ini_Nescal,
              :Ini_Netage,
              :Ini_Nposit,
              :Ini_Cbase,
              :Ini_Opgmcr,
              :Ini_Oprfcr,
              :Ini_Tsmcrt);

  EXEC SQL
    SELECT Cidmcl,
           Coduex,
           Nbatim,
           Nescal,
           Netage,
           Nposit,
           Cbasel,
           Opgmcr,
           Oprfcr,
           Tsmcrt
      INTO :Vrf_Uuid_Lien,
           :Vrf_Coduex,
           :Vrf_Nbatim,
           :Vrf_Nescal,
           :Vrf_Netage,
           :Vrf_Nposit,
           :Vrf_Cbasel,
           :Vrf_Opgmcr,
           :Vrf_Oprfcr,
           :Vrf_Tsmcrt
      FROM Qtemp.Bnxlgp
      WHERE Cidmcl = :Ref_Uuid_Lien;

  Print('Executing:       * testMAJ_BEEP()');

// Place your assertions here.
  Aequal(Ref_uuid_lien:Vrf_uuid_lien);
  Aequal(Ref_Nbatim:Vrf_Nbatim);
  Aequal(Ref_Nescal:Vrf_Nescal);
  Aequal(Ref_Netage:Vrf_Netage);
  Aequal(Ref_Nposit:Vrf_Nposit);
  Aequal(Ref_Cbase:Vrf_Cbase);
  Iequal(Ref_Coduex:Vrf_Coduex);
  Aequal(Ref_Cbasel:Vrf_Cbasel);
  Aequal(Ref_Opgmcr:Vrf_Opgmcr);
  Aequal(Ref_Oprfcr:Vrf_Oprfcr);
  Assert(Ref_Tsmcrt=Vrf_Tsmcrt:'Le timestamp de création a été modifié');
  Aequal(Ref_Opgmmo:Vrf_Opgmmo);
  Aequal(Ref_Oprfmo:Vrf_Oprfmo);
  Assert(Vrf_Tsmmod<>0:'Le Timestamp de Mod. n''a pas été mis à jour');

end-proc;            
Éti­quettes du sujet
1 Réponse 
0

Bon­jour,

cher­chez l’er­reur ! j’ai trouvé :

 Dcl-s Vrf_Oprfcr Char(10);
  Dcl-s Vrf_Tsmcrt Timestamp;
  Dcl-s Vrf_Opgmmo Char(10);
  Dcl-s Vrf_Oprfmo Char(10);
  Dcl-s Vrf_Tsmcrt Timestamp;

contient 2 fois 

Vrf_Tsmcrt

Qu’est-ce qu’on gagne ? cheeky

Olivier Drubigny Oli­vier Dru­bi­gny Début du sujet ven 25 août 2023 17 h 26 min 

Pauvre de moi exact, le 2nd devrait être Vrf_Tsmmod. 🙁 😉

Olivier Drubigny Oli­vier Dru­bi­gny Début du sujet ven 25 août 2023 17 h 26 min 

Tu gagnes ma gra­ti­tude éter­nel (c’est long).

Denis Lan­dra­gin ven 25 août 2023 17 h 27 min 

Sur­tout vers la fin…

Share :