如何在 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;

DBFiddle Demo

这样做:

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 个字符(而不是填充!)。

希望对您有所帮助。