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

时间:2008-10-01 05:24:24

标签: sql oracle

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

select to_char(1011,'00000000') OPE_NO from dual;
select length(to_char(1011,'00000000')) OPE_NO from dual;

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

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

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

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

2 个答案:

答案 0 :(得分:31)

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

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

答案 1 :(得分:6)

documentation提到的同一EddieAwad

  

自动返回负值   包含一个主要的负号和   正值自动包含   一个领先的空间,除非格式   model包含MI,S或PR格式   元件。


编辑:正确的方法是使用FM修饰符,正如史蒂夫博斯曼所回答的那样。有关详细信息,请阅读有关Format Model Modifiers的部分。