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

SQL Oracle Discussion :

pb d'insertion d'une valeur null


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut pb d'insertion d'une valeur null
    Bonjour,

    En fait j'ai plusieurs questions à poser en même temps suite à l'étude d'un tutoriel sur ql sous Oracle.
    Peut-on insérer une valeur 'null' avec un ordre insert into?

    J'ai ensuite lu que les entêtes des colonnes alphanumériques peuvent être tronquées, mais pas ceux des des colonnes numériques.
    Cela signifie t-il qu'à l'affichage on peut ne voir qu'une partie du nom de la colonne?
    Dans quel cas cela se produit-il?

    Dans le cas d'une concaténation de deux champs de type numérique, la colonne résultate est une expression caractère.
    Pour quelle raison?

    Je vous remercie de votre aide.

    Cordialement.
    Nathalie

  2. #2
    Invité de passage
    Inscrit en
    Novembre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1
    Par défaut
    Bonjour,
    En fait j'ai plusieurs questions à poser en même temps suite à l'étude d'un tutoriel sur ql sous Oracle.
    Peut-on insérer une valeur 'null' avec un ordre insert into?
    Oui, il suffit d'écrire null ou '' (deux cotes) si le champs n'est pas NOT NULL bien sur
    ex : insert into tab_test (no, lb) values (123, null);

    J'ai ensuite lu que les entêtes des colonnes alphanumériques peuvent être tronquées, mais pas ceux des des colonnes numériques.
    Cela signifie t-il qu'à l'affichage on peut ne voir qu'une partie du nom de la colonne?
    Dans quel cas cela se produit-il?
    pas compris ce qu'est "tronquer l'entete", je passe

    toutefois, comme tu peux récupérer le nom des colonnes dans la table user_tab_colums, je ne vois pas ce qui empêcherais de tronquer le résultat d'un
    SELECT t.COLUMN_NAME FROM USER_TAB_COLUMNS t
    WHERE t.TABLE_NAME = 'XXXXXXX'
    que ce soit du texte ou des nombres

    Dans le cas d'une concaténation de deux champs de type numérique, la colonne résultate est une expression caractère.
    Pour quelle raison?
    ah bon ?
    Cet exemple (très parlant ) prouve le contraire
    CREATE TABLE toto (cestunnombre NUMBER);
    INSERT INTO toto VALUES (12||3 + 20);
    COMMIT;
    Je vous remercie de votre aide.
    a pleasure

  3. #3
    Invité
    Invité(e)
    Par défaut
    avec CONCAT, on a un autre comportement !! (mon test est sur une BD 9.2.0.8)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE toto (cestunnombre NUMBER);
    INSERT INTO toto VALUES (12 || 3 + 20);
    INSERT INTO toto VALUES (concat ( 12 , 3 + 20) );
    COMMIT;
     
     
    select * from toto ;
     
    CESTUNNOMBRE
    ------------
             143
            1223

  4. #4
    Membre expérimenté Avatar de Loyd1974
    Profil pro
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut
    C'est un peu logique, vu que tu ne fais pas la même chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    12 || 3 = 123
    123 + 20 = 143
     
    Concat(12, 3+20) = Concat (12, 23) = 1223
    Le compte est bon, voyelle !

    Autre chose, la concaténation de 2 champs, même s'ils sont des numériques,donne des caractères !!!
    C'est oracle qui fait ensuite la conversion.

    Donc, faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    insert into MaTable (MonNumber) values (12||3) 
    équivaut à faire :
    insert into MaTable (MonNumber) values ('123');

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut pb insertion champ null
    Bonjour,

    Je vous remercie de votre aide.
    Il était très important que je sache ceci:

    Autre chose, la concaténation de 2 champs, même s'ils sont des numériques,donne des caractères !!!
    C'est oracle qui fait ensuite la conversion.
    Cordialement
    Nathalie

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Loyd1974 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    12 || 3 = 123
    123 + 20 = 143
    Autant pour moi, j'étais persuadé que l'addition était prioritaire sur la concaténation et je ne comprenais pas le résultat !
    Merci pour l'info !

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut pb insertion valur null
    Bonsoir,

    Juste une petite remarque: on n'écrit pas 'autant pour moi' mais 'au temps pour moi'
    voici un lien intéressant à ce propos.
    http://www.langue-fr.net/index/A/au_temps-autant.htm

    Cordialement.
    Nathalie

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/05/2011, 12h40
  2. Insertion d'une valeur NULL
    Par Marc_27 dans le forum Accès aux données
    Réponses: 3
    Dernier message: 05/08/2010, 09h10
  3. [MySQL] Insertion d'une valeur nulle, PHP->MySQL
    Par mattyeux dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/04/2010, 14h43
  4. Insertion d'une valeur null pour une colonne
    Par bigggalll dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 24/03/2010, 15h01
  5. [MySQL] INSERT TO une valeur NULL
    Par Budy123 dans le forum PHP & Base de données
    Réponses: 27
    Dernier message: 03/03/2010, 15h32

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