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 :

remplir un champ numérique avec 0


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Points : 59
    Points
    59
    Par défaut remplir un champ numérique avec 0
    Salut,

    Je voudrais mettre des 0 à gauche d'un chiffre;
    J'ai un champs numérique de 10 , je voudrais qd je rentre 222, avoir 0000000222.
    Qd je fais lPAD(champ,number,'0');et le resultat est tjs 222, par contre qd je mets lPAD(champ,number,'1');ca marche mais ce que je veux sont des 0.

    Merci d'avance,

  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
    Numérique : Pas de 0 à gauche.
    C'est à l'affichage où tu peux modifier.
    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 expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    La fonction lpad fonctionne de la manière suivante :
    lpad (c1, n, c2);
    avec :
    c1 : chaine de caractères à compléter
    n : nombre de caractère à ajouter
    c2 : caractère à ajouter à gauche

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQL>select lpad ('1', 10, '0') from dual;
    LPAD('1',1
    ----------
    0000000001
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    >> plaineR
    Ce que fais 18Marie doit ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    10g SOC5> declare
      2    ln_nb number(12,2);
      3  begin
      4    select lpad ('1', 10, '0')
      5    into   ln_nb
      6    FROM   dual;
      7    dbms_output.put_line('ln_nb = ' || ln_nb);
      8  end;
      9  /
    ln_nb = 1
     
    Procédure PL/SQL terminée avec succès.
    Une solution consisterait à utiliser un VARCHAR2 à la place d'un 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
    16
    17
    18
    19
    20
     
    10g SOC5> declare
      2    ln_nb number(12,2);
      3    lc_nb varchar2(30);
      4  begin
      5    select lpad ('1', 10, '0')
      6    into   ln_nb
      7    FROM   dual;
      8    dbms_output.put_line('ln_nb = ' || ln_nb);
      9  
     10    select lpad ('1', 10, '0')
     11    into   lc_nb
     12    FROM   dual;
     13    dbms_output.put_line('lc_nb = ' || lc_nb);
     14  end;
     15  /
    ln_nb = 1
    lc_nb = 0000000001
     
    Procédure PL/SQL terminée avec succès.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par Magnus
    >> plaineR
    Ce que fais 18Marie doit ressembler à ça :
    Désolé, j'ai oublié ma boule de cristal ce matin.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

Discussions similaires

  1. Incrémenter un champ numérique avec UPDATE
    Par boteha dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/02/2009, 09h31
  2. [RegEx] Tester la saisie d'un champ numérique avec virgule
    Par p_m_g dans le forum Langage
    Réponses: 1
    Dernier message: 30/12/2007, 22h36
  3. Remplir un champ text avec un calendrier
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 16/11/2007, 16h18
  4. Réponses: 13
    Dernier message: 28/11/2006, 08h40
  5. [debutant]remplir un champs txt avec un clic bouton
    Par Zen_Fou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/06/2006, 17h07

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