Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2011, 22h42   #1
Membre régulier
 
Avatar de hammag
 
Inscription : février 2006
Messages : 477
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 477
Points : 94
Points : 94
Par défaut to_char mettre à jour un champ sans les blancs

bonsoir,

j'ai un champ de type char de longueur 10 et je cherche à mettre à jour ce champ avec la valeur d'un champ numérique d'une deuxième table (avec la fonction to_char)

Code :
1
2
3
 
UPDATE TAB1 
SET champ1 = SELECT to_char(nbr, '999.99') FROM TAB2
est-il possible de ne mettre dans le champ champ1 que les caractères du numéro ?

ex: si la valeur du champ nbr dans la 2ème table = 25

est-il possible de mettre dans champ1 la valeur '25' et non '________25'
merci d'avance ?

merci d'avance
hammag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 22h56   #2
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 263
Points : 3 263
C'est doublement impossible :
- quand une valeur est acceptée dans une colonne de type T, alors cette valeur devient de type T (peu importe sa provenance, sa signification fonctionnelle, etc)
- dans les colonnes de type CHAR(n), les valeurs sont automatiquement complétées par des espaces à droite, à concurrence de n.

Donc il vaut mieux utiliser une colonne VARCHAR2(n), au moins vous n'aurez pas ces espaces parasites.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/05/2011, 22h57   #3
Membre du Club
 
Homme
Développeur informatique
Inscription : décembre 2006
Messages : 104
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 104
Points : 49
Points : 49
utilise la fonction trim(nbr) pour supprimer les espaces
webfranc est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 16/05/2011, 23h04   #4
Membre régulier
 
Avatar de hammag
 
Inscription : février 2006
Messages : 477
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 477
Points : 94
Points : 94
donc, c'est le type du champ champ1 est varchar et non char je n'aurais pas ce problème ?
hammag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 01h06   #5
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 438
Points : 10 438
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
C'est bien ça.
Maintenant, stocker des nombres dans un varchar ce n'est pas une bonne idée.

Si vous êtes amené à le faire, c'est que la modélisation de votre base de données est mauvaise.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 10h24   #6
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
Citation:
Envoyé par webfranc Voir le message
utilise la fonction trim(nbr) pour supprimer les espaces
ou alors le formateur FM

Code :
to_char(1.23,'FM999.99')
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h34.


 
 
 
 
Partenaires

Hébergement Web