IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Declare variable Null


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 54
    Points
    54
    Par défaut Declare variable Null
    Bonjour,

    Je dois utiliser une variable initialisé à NULL.
    Dans le DECLARE, est-ce que j'utilise le type INTEGER ou NUMBER pour wk_null?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DECLARE 
    wk_null  number; 
     
    BEGIN
    wk_null:=null;
    end;
    Merci!
    Jake000111

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    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.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    A la déclaration, de toute façon, la variable est initialisée à NULL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 54
    Points
    54
    Par défaut
    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!
    Jake000111

  4. #4
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    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 genre ca va pas marcher pour detecter les nulls

    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.

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 122
    Points : 54
    Points
    54
    Par défaut
    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!
    Jake000111

  6. #6
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    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)

Discussions similaires

  1. prob declaration variable
    Par kikilevrai dans le forum Access
    Réponses: 2
    Dernier message: 06/07/2006, 16h17
  2. proble declaration variable publique
    Par tlolo dans le forum Delphi
    Réponses: 8
    Dernier message: 05/07/2006, 19h13
  3. Réponses: 2
    Dernier message: 24/05/2006, 00h58
  4. [VB.net] Declaration variable dans une boucle for
    Par nico10gbb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/05/2006, 11h45
  5. [debutant] declaration variable
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 01/06/2004, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo