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

Einer Zahl kann keine führenden 0EN, das ist ein Charakter, so entfernen Sie die 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

Schreibe einen Kommentar