Recherche Requete SQL toute bête...
meilleurduweb
Messages postés
65
Statut
Membre
-
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
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
A voir également:
- Recherche Requete SQL toute bête...
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Un pense-bête - Guide
- Recherche image - Guide
- Je recherche une chanson - Guide
6 réponses
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
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
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
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
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 :
DaNot
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question