如何在pl / sql中将特定数量的字符放在字符串前面?

时间:2018-04-26 13:51:11

标签: sql oracle varchar zero-padding

我希望在操作后将字符串修改为20个字符的长度。例如,如果我的字符串为1455,则新字符串应为00000000000000001455(20个字符),前面有16个0。或者,如果我的字符串为12345678,则新字符串应为00000000000012345678(20个字符),前面有12个0

我可以在用户定义的函数中完成它,但我想知道在Oracle中是否有一种简单的方法可以做到这一点?我用谷歌搜索,但找不到任何类似的解决方案。有什么建议吗?

3 个答案:

答案 0 :(得分:2)

这样做:

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

答案 1 :(得分:1)

您可以使用LPAD()

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

或一般:

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

如果mystring的长度大于20个字符,则会被截断为20个字符(并且不会填充!)。

希望这有帮助。

答案 2 :(得分:0)

您可以使用TO_CHAR

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

<强> DBFiddle Demo