Recherche Requete SQL toute bête...

meilleurduweb Messages postés 65 Date d'inscription   Statut Membre -  
meilleurduweb Messages postés 65 Date d'inscription   Statut Membre -
Bonjour à tous et merci d'avance pour votre aide,

Je suis sur Oracle, et voici ce que je souhaiterai faire :
j'ai un champ "numero" de 4 caractères.
dans un 1er temps je souhaiterai passer ce champ à 6 caractères.
Ensuite, il faut modifier les enregistrements en ajoutant "00" devant (ex: si j'ai un enregistrement avec "1234" il faut qu'il devienne "001243")

Merci pour votre aide.

NoBoOo

6 réponses

  1. DaNot Messages postés 221 Statut Membre 163
     
    Bonjour,

    l'instruction pour modifier une table est :
    ALTER TABLE MaTable MODIFY (MaColonne VARCHAR2(6));

    Ensuite, la mise peut se faire avec une requete du type :

    UPDATE MaTable
    SET MaColonne = MaColonne || "00";

    En esperant avoir apporter quelques elements de reponse ....

    DaNot
    0
  2. meilleurduweb Messages postés 65 Date d'inscription   Statut Membre 5
     
    Merci beaucoup pour ta réponse DaNot,

    Concernant l'alter, c'est nickel.
    Toutefois, pour ajouter les 2 zéros "00" en début de chaine, ça plante, voici l'erreur :
    UPDATE MaTable SET MaColonne = MaColonne || "00"
    ERROR at line 1:
    ORA-00904: invalid column name "00"

    J'ai essayé en mettant des simple cotes : '00'
    Et là j'ai l'erreur suivante :
    UPDATE contrat SET tit_pwd = tit_pwd || '00'
    *
    ERROR at line 1:
    ORA-01401: inserted value too large for column

    Ma colonne est pourtant de 6 char maintenant, j'ai comme enregsitrement "1234", et je veux ajouter "00" devant soit 6 char au total, ça devrait passer, non ?
    ??? As-tu une idée du problème ?

    Merci.

    NoBoOo
    0
  3. DaNot Messages postés 221 Statut Membre 163
     
    En effet, c'est sans doute les simples cotes a utiliser.

    Par contre, je pensais que tu utilisais des varchar2. Or a priori, c'est des chars. La difference, c'est si la colonne tit_pwd etait en char de 4, en passant la colonne en char de 6, Oracle a ajoute 2 espaces par defaut (toutes les positions du type sont utilises).
    Il faut donc enelver les espaces avant d'jouter les zeros :
    UPDATE MaTable 
    SET MaColonne = RTRM (MaColonne) || '00';

    DaNot
    0
  4. meilleurduweb Messages postés 65 Date d'inscription   Statut Membre 5
     
    Il plante sur RTRM :
    ERROR at line 1:
    ORA-00904: invalid column name "RTRM "
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. DaNot Messages postés 221 Statut Membre 163
     
    Desole, une petite erreur RTRIM

    DaNot
    0
  7. meilleurduweb Messages postés 65 Date d'inscription   Statut Membre 5
     
    Super ça fonctionne nickel !!!
    Merci beaucoup pour ton aide.
    A+
    NoBoOo
    0