oracle数字格式上不需要的前导空格

Ove*_*esh 18 sql oracle

我需要用前导零(总共8位)填充数字以供显示.我正在使用oracle.

select to_char(1011,'00000000') OPE_NO from dual;
select length(to_char(1011,'00000000')) OPE_NO from dual;
Run Code Online (Sandbox Code Playgroud)

而不是'00001011',我得到'00001011'.为什么我会获得额外的领先空白?完成此操作的正确数字格式字符串是什么?

PS我意识到我可以使用trim(),但我想更好地理解数字格式.

@Eddie:我已经阅读了文档.然而,我仍然不明白如何摆脱领先的空白.

@David:这是否意味着除了使用之外没办法trim()

Ste*_*man 33

使用FM(填充模式),例如

select to_char(1011,'FM00000000') OPE_NO from dual;


VVS*_*VVS 6

EddieAwad提到的相同文档中:

负返回值自动包含前导负号,正值自动包含前导空格,除非格式模型包含MI,S或PR格式元素.


编辑:正确的方法是使用FM修改器,如史蒂夫博斯曼回答.有关详细信息,请阅读有关格式模型修饰符的部分.