Bonjour,
Je dois utiliser une variable initialisé à NULL.
Dans le DECLARE, est-ce que j'utilise le type INTEGER ou NUMBER pour wk_null?
Merci!Code:
1
2
3
4
5
6 DECLARE wk_null number; BEGIN wk_null:=null; end;
Version imprimable
Bonjour,
Je dois utiliser une variable initialisé à NULL.
Dans le DECLARE, est-ce que j'utilise le type INTEGER ou NUMBER pour wk_null?
Merci!Code:
1
2
3
4
5
6 DECLARE wk_null number; BEGIN wk_null:=null; end;
Je ne comprends pas la question.. NULL n'est pas lié au type, donc si tu veux un integer tu le déclares en Integer, si tu veux un NUMBER tu le déclares en NUMBER.
A la déclaration, de toute façon, la variable est initialisée à NULL.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 DECLARE N number; -- Equivalent à N number := NULL; D DATE; -- equivalent à D DATE := NULL; c VARCHAR2(1); -- equivalent à c VARCHAR2(1):= NULL; i INTEGER; -- Equivalent à i INTEGER := NULL; BEGIN N := NULL; D := NULL; --OU D := TO_DATE(NULL); C := NULL; --ou C := ''; i := NULL; END;
Code:
1
2
3
4
5
6
7
8
9 DECLARE N number; D DATE; c VARCHAR2(1); i INTEGER; BEGIN -- Toutes les variables sont NULL IF n is null and d is null and c is null and i IS null THEN raise_application_error(-20001, 'toutes les variables sont NULL'); END IF; END;
Merci!
Effectivement peu importe le type, la valeur est initialisée à NULL.
Je me demandais surtout si un type était mieux qu'un autre pour le PL/SQL.
Merci beaucoup!
Je vois pas trop l'utilité d'avoir une variable constament nulle...
tu ne peux pas utiliser NULL tout simplement plutot que de devoir passer par une variable ?
Si tu imagines pouvoir faire un truc du genreca va pas marcher pour detecter les nullsCode:ma_variable = wk_null
Si apres ta variable évolue et peut contenir un number, bin alors initialise la en number... si c'est une constante null, ca sert juste à rien.
Bien le but était d'éviter un problème d'intégrités dans l'INSERT d'une table.
Il y a eu ajout de champs dans la table et le temps de corriger le code et ne pas bloquer les pilotes du système dans leurs essais.
Donc, je voulais tout simplement mettre une valeur NULL dans les champs en attendant.
Merci!
Dans ce cas, autant l'initialisée avec le type de la colonne qu'elle est censée représentée.
Mais si elle doit représenter plusieurs colonnes le problème reste entier (mais n'est pas un vrai problème en soit)