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