Как поставить определенное количество символов перед строкой в ​​PL / SQL? - PullRequest
0 голосов
/ 26 апреля 2018

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

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

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

сделай так:

select lpad('1455',20,'0') from dual;
0 голосов
/ 26 апреля 2018

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

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

или вообще:

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

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

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

0 голосов
/ 26 апреля 2018

Вы можете использовать TO_CHAR:

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

Демоверсия DBFiddle

...