Bonjour,
Comment fait-on pour vérifier qu’une variable est nulle ?
Cordialement,
EXEC SQL
SELECT Cidmcl,
Coduex,
Nbatim,
Nescal,
Netage,
Nposit,
Cbasel,
Opgmcr,
Oprfcr,
Tsmcrt,
Opgmmo,
Oprfmo,
Tsmmod
INTO :Vrf_Uuid_Lien,
:Vrf_Coduex,
:Vrf_Nbatim,
:Vrf_Nescal,
:Vrf_Netage,
:Vrf_Nposit,
:Vrf_Cbasel,
:Vrf_Opgmcr,
:Vrf_Oprfcr,
:Vrf_Tsmcrt,
:Vrf_Opgmmo,
:Vrf_Oprfmo,
:Vrf_Tsmmod
FROM Qtemp.Bnxlgp
WHERE Cidmcl = :Ref_Uuid_Lien;
----
----
Assert(%nullind(Vrf_Tsmmod) = *On:'Le Timestamp de Mod. n''a pas été mis à jour');
Dans le cas présent, il s’agit du cas spécial des variables hôtes. Il faut utiliser une variable de type Interger 5:0 pour contenir l’information nullité.
Dcl-s l_valeur_null int(5);
Elle est utilisée dans la requête SQL comme suit :
EXEC SQL
SELECT Cidmcl,
Coduex,
Nbatim,
Nescal,
Netage,
Nposit,
Cbasel,
Opgmcr,
Oprfcr,
Tsmcrt,
Opgmmo,
Oprfmo,
Tsmmod
INTO :Vrf_Uuid_Lien,
:Vrf_Coduex,
:Vrf_Nbatim,
:Vrf_Nescal,
:Vrf_Netage,
:Vrf_Nposit,
:Vrf_Cbasel,
:Vrf_Opgmcr,
:Vrf_Oprfcr,
:Vrf_Tsmcrt,
:Vrf_Opgmmo,
:Vrf_Oprfmo,
:Vrf_Tsmmod :l_Valeur_nulle
FROM Qtemp.Bnxlgp
WHERE Cidmcl = :Ref_Uuid_Lien;
Si la variable l_valeur_nulle contient ‑1, c’est que la variable hôte est nulle. Sinon elle contient 0.
Exemple d’usage :
if l_valeur_nulle = 0;
l_timestamp_modif = Vrf_tsmmod;
Elseif l_valeur_nulle = -1;
clear l_timestamp_modif;
Endif;
Cordialement,