SQLRPGLE, travail avec valeur nulle

RPG (3 et 4, free), CL, SQL, etc...
Répondre
BrigitteG
Messages : 109
Enregistré le : jeu. 20 sept. 2012, 08:56:38

SQLRPGLE, travail avec valeur nulle

Message par BrigitteG »

Bonjour,

Dans sqlrpgle, je lis un fichier dont certaines zones peuvent avoir nulles.

Pour éviter d'avoir l'erreur SQLCOD = -000000305 (La variable indicateur doit être indiquée.), j'ai utilisé ifnull(zone,'0')

Code : Tout sélectionner

EXEC SqL  DECLARE C3 CURSOR FOR
  SELECT clé, ifnull(z1,'0'), ifnull(z2,'0'),
             ifnull(z3,'0') FROM fichier
    where clé = :wclé  and
              (z1 is NOT NULL or z2 is NOT NULL or z3 is NOT NULL)
    group BY clé, z1, z2, z3
    order by clé
  FOR FETCH ONLY;
EXEC SqL OPEN C3;
  dow sqlCod = 0;
  EXEC SqL FETCH C3 INTO :wclé1, :wz1, :wz2, :wz3;
  if sqlcod = 0;
  if z1....            
Mais la z2, le zéro est significatif, donc je ne peux pas utiliser ifnull(z2,'0').

Comment faire pour ne charger wz2 que si z2 is not null ?

Merci d'avance pour votre aide.

BrigitteG
Messages : 109
Enregistré le : jeu. 20 sept. 2012, 08:56:38

SQLRPGLE, travail avec valeur nulle

Message par BrigitteG »

Je viens de trouver la réponse sur votre site http://www.volubis.fr/news/liens/AF4SRC ... QL400P.HTM.

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

valeur nulle

Message par cmasse »

Essayez plutôt avec les variables indicateur, qui sont des variables déclarées

Code : Tout sélectionner

D ind1                      s               5I 0  

Code : Tout sélectionner

EXEC SqL  DECLARE C3 CURSOR FOR
  SELECT clé, z1 ,z2, z3
             FROM fichier
    where clé = :wclé  
    group BY clé, z1, z2, z3
    order by clé
  FOR FETCH ONLY;
EXEC SqL OPEN C3;
  dow sqlCod = 0;
  EXEC SqL FETCH C3 INTO :wclé1, :wz1:ind1, :wz2:ind2, :wz3:ind3;
  if sqlcod = 0;
  if ind1< 0;
    ...         

les variables ind1,ind2 et ind3 contiennent
  • 0 -> z1 contient qq chose, du coup wz1 aussi.
    -1 -> z1 contient NULL dans la base (s'affiche '-' sous STRSQL)
    -2 -> impossible de "fabriquer" le résultat (s'affiche '+++' sous STRSQL)
Christian Massé (Volubis.fr)

BrigitteG
Messages : 109
Enregistré le : jeu. 20 sept. 2012, 08:56:38

(sans texte)

Message par BrigitteG »

Merci

Répondre