如何在 pl/sql 中的字符串前面放置特定数量的字符?
how to put specific number of characters in front of a string in pl/sql?
我想在操作后将一个字符串固定为20个字符的长度。例如,如果我的字符串是 1455
,那么新字符串应该是 00000000000000001455
(20 个字符),前面有 16 个 0
。或者,如果我的字符串是 12345678
,那么新字符串应该是 00000000000012345678
(20 个字符),前面有 12 个 0
。
我可以在用户定义的函数中完成,但我想知道在 Oracle 中是否有一种简单的方法可以做到这一点?我用谷歌搜索但找不到任何类似的解决方案。有什么建议吗?
您可以使用 TO_CHAR
:
SELECT TO_CHAR('1455', 'fm00000000000000000000') FROM dual;
这样做:
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 个字符(而不是填充!)。
希望对您有所帮助。
我想在操作后将一个字符串固定为20个字符的长度。例如,如果我的字符串是 1455
,那么新字符串应该是 00000000000000001455
(20 个字符),前面有 16 个 0
。或者,如果我的字符串是 12345678
,那么新字符串应该是 00000000000012345678
(20 个字符),前面有 12 个 0
。
我可以在用户定义的函数中完成,但我想知道在 Oracle 中是否有一种简单的方法可以做到这一点?我用谷歌搜索但找不到任何类似的解决方案。有什么建议吗?
您可以使用 TO_CHAR
:
SELECT TO_CHAR('1455', 'fm00000000000000000000') FROM dual;
这样做:
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 个字符(而不是填充!)。
希望对您有所帮助。