Die Anzeige der führenden Nullen in einer Reihe von oracle
Habe ich eine oracle-Spalte(artnr) enthält die Länge 1, das ist von Typ number(9). Ich möchte die Anzahl zu aktualisieren, wie folgt...
Beispiel :
Wenn Zahl 0 ist, dann sollte es 00000
Wenn die Zahl 1 ist, dann sollte es 00001
Wenn die Zahl ist 12, die es sein sollte 00012
Denken Sie daran : hier 00000,0000, und 00012 sind von Zahl-Datentypen
Im folgenden sind die Methoden, die ich versucht habe, aber gescheitert..
UPDATE pitb.toestel b
SET b.artnr = LPAD (b.artnr, 5, 0)
WHERE b.idinventaris = 403743;
Ist fehlgeschlagen, da Lpad kann nur angewendet werden auf strings
UPDATE pitb.toestel b
SET b.artnr = TO_NUMBER (TO_CHAR (artnr, '00009'), '00009')
WHERE b.idinventaris = 403743;
Immer noch nicht, da to_number wird nicht angezeigt, die führende null ist. Es wird nur in Betracht ziehen, von der ersten Anzahl
Jemand, könnten Sie bitte empfehlen Sie mir etwas, das zu lösen, wird dieses Szenario..
sql vorzuziehen ist als pl/sql-Lösung
TO_NUMBER()
um Ihre Letzte Aussage.Wenn eine Spalte von
number
Daten geben, werden führende Nullen nicht gespeichert werden. Speichern Sie die Werte als zahlen ein und verwenden Sie entweder lpad()
(verwenden Sie to_char()
zu vermeiden, implizite Datentyp-Konvertierung) oder to_char()
direkt, wenn Sie die Anzeige von Daten.InformationsquelleAutor Ramu Pedada | 2014-09-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstens, Zahlen haben keine führenden Nullen. Also, wenn Sie speichern die ANZAHL der Werte, lasst Sie Verhalten sich wie die Zahlen. es ist nur, wenn Sie wollen, um Sie anzuzeigen, können Sie
LPAD
und fügen Sie führende Nullen. Die conevrts die Zahl in einen string mit führenden Nullen.So, keine Notwendigkeit, um die Tabelle zu aktualisieren. Verwenden
LPAD
um Sie anzuzeigen, wie Sie wollen.Zu vermeiden, implizite Datentyp-Konvertierung, verwenden Sie
TO_CHAR
vor der AnwendungLPAD
.InformationsquelleAutor Lalit Kumar B
InformationsquelleAutor Giorgi Orvelashvili
Wenn Sie wirklich möchten, speichern Sie diese Nummern mit vorstehenden Nullen, dann müssen Sie ändern Sie den Datentyp varchar2. Dann können Sie
to_char( artnr , 'fm00009')
in der update-Anweisung. Natürlich, dazu kommt eventuell mit unbeabsichtigten Folgen. Gehen Sie für diese Lösung auf eigenes Risiko.Könnten Sie auch erwägen, eine Ansicht, die null-paddes der Reihe "on the fly", wenn Sie wählen Sie in dieser Ansicht.
InformationsquelleAutor René Nyffenegger
In meinem Fall war das Ziel die Berechnung der Summe der Werte der verschiedenen Währungen, aber das Problem wurde durch den Datentyp des Feldes WERT VARCHAR2(255 BYTE). Ich fand diese Lösung für das problem umgehen der führenden null:
InformationsquelleAutor cosgiu83