为什么Oracle的to_char()
功能会增加空间?
select length('012'), length(to_char('012')), length(to_char('12', '000')) from dual;
3, 3, 4
额外的领先空间是潜在的减号.要删除空间,您可以使用以下格式的FM:
SQL> select to_char(12,'FM000') from dual; TO_C ---- 012
顺便说一句,请注意to_char采用NUMBER参数; to_char('012')隐式转换为to_char(to_number('012'))= to_char(12)
为了更清楚地给出答案:
select '['||to_char(12, '000')||']', '['||to_char(-12, '000')||']', '['||to_char(12,'FM000')||']' from dual [ 012] [-012] [012]
您使用的格式掩码是固定宽度,允许使用减号