У меня есть столбец оракула (artnr) имеет длину 1, которая имеет номер типа (9). Я хочу обновить номер следующим образом...
Пример :
Если число равно 0, то должно быть 00000 Если число равно 1, то должно быть 00001 Если число равно 12, то должно быть 00012
Помните: здесь 00000,0000 и 00012 относятся к числовым типам данных.
Ниже приведены методы, которые я пробовал, но потерпел неудачу.
UPDATE pitb.toestel b
SET b.artnr = LPAD (b.artnr, 5, 0)
WHERE b.idinventaris = 403743;
Не удалось, поскольку Lpad можно применять только к строкам.
UPDATE pitb.toestel b
SET b.artnr = TO_NUMBER (TO_CHAR (artnr, '00009'), '00009')
WHERE b.idinventaris = 403743;
Все еще не удалось, потому что to_number не будет отображать начальные нули. Он будет рассматривать только с первого номера
Кто-нибудь, не могли бы вы предложить мне что-то, что решит этот сценарий.
sql предпочтительнее решения pl/sql
TO_NUMBER()
вокруг последнего утверждения. - person Ben   schedule 22.09.2014number
, ведущие нули не сохраняются. Сохраняйте значения в виде чисел и используйте либоlpad()
(используйтеto_char()
, чтобы избежать неявного преобразования типа данных), либоto_char()
напрямую при отображении данных. - person Nick Krasnov   schedule 22.09.2014