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

时间:2020-03-06 14:57:43  来源:igfitidea点击:

我需要在数字前加上前导零(总共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()吗?

解决方案

从EddieAwad提到的同一文档中:

Negative return values automatically
  contain a leading negative sign and
  positive values automatically contain
  a leading space unless the format
  model contains the MI, S, or PR format
  element.

编辑:正确的方法是使用FM修改器,正如史蒂夫·博斯曼(Steve Bosman)回答的那样。阅读有关格式化模型修饰符的部分,以获取更多信息。

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

从双重选择to_char(1011,'FM00000000')OPE_NO;