Bonjour,
Je developpe sur Oracle 10.1
Je voudrais supprimer des lignes dans une tables dont certains champs peuvent être NULL.
EX :
DELETE T_NOTIFICATION
WHERE DOMAIN_SEQ=p_domain_seq
AND DATASET_SEQ = p_dataset_seq
AND COUNTRY_SEQ = p_country_seq
Les paramètres (p_...) peuvent être NULL ou pas, si ils le sont il faut les tester. Malheureusement, le test pour la valeur NULL doit être monchps IS NULL et ca ne va pas si il y a une valeur....
Avez vous une solution?
J'en ai trouvée une mais qui est "sale":
DELETE (SELECT NVL(DOMAIN_SEQ,0) DOMAIN_SEQ
,NVL(COUNTRY_SEQ,0) COUNTRY_SEQ
,NVL(DATASET_SEQ,0) DATASET_SEQ
FROM T_NOTIFICATION) N
WHERE DOMAIN_SEQ= NVL(p_domain_seq,0)
AND (DATASET_SEQ = NVL(p_dataset_seq, 0))
AND (COUNTRY_SEQ = NVL(p_country_seq, 0))
Cette solution consite à remplacer les valeurs NULL par 0 dans les données à tester et dans le paramètres. Configuration: Windows XP
Firefox 2.0.0.2
