Как поставить определенное количество символов перед строкой в ​​PL / SQL?

Я хочу исправить строку длиной до 20 символов после операции. Например, если моя строка 1455 тогда новая строка должна быть 00000000000000001455 (20 символов) с 16 0с впереди. Или если моя строка 12345678 тогда новая строка должна быть 00000000000012345678 (20 символов) с 12 0с впереди.

Я могу сделать это в пользовательской функции, но мне интересно, есть ли простой способ сделать это в Oracle? Я погуглил, но не смог найти аналогичного решения. Какие-либо предложения?

3 ответа

Решение

Сделай это так:

select lpad('1455',20,'0') from dual;

Ты можешь использовать LPAD():

SELECT LPAD('1455', 20, '0') FROM dual;

или вообще:

SELECT LPAD(mystring, 20, '0') FROM mytable;

Если длина mystring больше 20 символов будет усечено до 20 символов (а не дополнено!).

Надеюсь это поможет.

Вы могли бы использовать TO_CHAR:

SELECT TO_CHAR('1455', 'fm00000000000000000000') FROM dual;

DBFiddle Demo

Другие вопросы по тегам