Recherche Requete SQL toute bête...

meilleurduweb Messages postés 65 Statut Membre -  
meilleurduweb Messages postés 65 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

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
meilleurduweb Messages postés 65 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
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
meilleurduweb Messages postés 65 Statut Membre 5
 
Il plante sur RTRM :
ERROR at line 1:
ORA-00904: invalid column name "RTRM "
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

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

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