Comment afficher le zéro dans un certain nombre de oracle
J'ai un oracle de la colonne(artnr) contient une longueur de 1, qui est de type(9). Je veux mettre à jour le numéro suivant...
Exemple :
Si le nombre est 0, alors il devrait être 00000
Si le nombre est 1, alors il devrait être 00001
Si le nombre est de 12 le il devrait être 00012
Rappelez-vous : ici 00000,0000, et 00012 sont de numéro de types de données
Voici les méthodes que j'ai essayé mais échoué..
UPDATE pitb.toestel b
SET b.artnr = LPAD (b.artnr, 5, 0)
WHERE b.idinventaris = 403743;
A échoué car Lpad ne peut être appliqué que sur des chaînes
UPDATE pitb.toestel b
SET b.artnr = TO_NUMBER (TO_CHAR (artnr, '00009'), '00009')
WHERE b.idinventaris = 403743;
Encore échoué, parce que to_number n'affiche pas le zéro. Il ne prend en compte à partir du premier numéro de
Personne, pourriez-vous s'il vous plaît me suggérer quelque chose qui permettra de résoudre ce scénario..
sql est préférable que pl/sql solution
TO_NUMBER()
autour de votre dernière déclaration.Lorsqu'une colonne est de
number
type de données, les zéros ne seront pas enregistrées. Stocker les valeurs des nombres et utiliser lpad()
(utiliser to_char()
pour éviter implicite de conversion de type de données) ou to_char()
directement lorsque vous êtes à l'affichage des données.OriginalL'auteur Ramu Pedada | 2014-09-22
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, les Chiffres n'ont pas de zéro de. Donc, lorsque vous stockez le NOMBRE de valeurs, vous leur permettez de se comporter comme des Numéros. c'est seulement lorsque vous le souhaitez, vous pouvez utiliser
LPAD
et ajouter des zéros à gauche. Qui conevrts le numéro d'une chaîne avec des zéros à gauche.Donc, pas besoin de mettre à jour la table. Utilisation
LPAD
pour afficher de la manière que vous voulez.À éviter, implicite conversion de type de données, l'utilisation
TO_CHAR
avant d'appliquerLPAD
.OriginalL'auteur Lalit Kumar B
OriginalL'auteur Giorgi Orvelashvili
Si vous vraiment voulez stocker ces chiffres avec ceux qui précèdent les zéros, alors vous devez modifier le type de données à varchar2. Vous pouvez ensuite appliquer
to_char( artnr , 'fm00009')
dans l'instruction de mise à jour. Bien sûr, cela pourrait venir avec des conséquences inattendues. Optez pour cette solution à vos propres risques.Vous pouvez également envisager la création d'un point de vue que zéro paddes le numéro "à la volée" lorsque vous sélectionnez à partir de ce point de vue.
OriginalL'auteur René Nyffenegger
Dans mon cas, le but était de calculer la somme des valeurs des devises différentes, mais le problème a été créé par le type de données de la VALEUR de champ qui est VARCHAR2(255 OCTETS). J'ai trouvé cette solution, pour traiter le problème du zéro:
OriginalL'auteur cosgiu83