2015年7月8日 星期三

Oracle 的TO_CHAR,小心第二個參數

SELECT TO_CHAR(3, '000') VALUE, LENGTH(TO_CHAR(3, '000')) LENGTH FROM DUAL;

SELECT TO_CHAR(TO_NUMBER(3), '000') VALUE, LENGTH(TO_CHAR(TO_NUMBER(3), '000')) LENGTH FROM DUAL;

SELECT TO_CHAR('3', '000') VALUE, LENGTH(TO_CHAR('3', '000')) LENGTH FROM DUAL;

以上三行都是 VALUE LENGTH 003 4 注意003的左邊有一個空格 但是下面這行是正確的6
SELECT LENGTH(TO_CHAR('abc' || 'def')) FROM DUAL;

也就是有使用第二個參數時,才會在前面有前導字元的情形,它用來分辯+-的,可以trim掉或者使用「FM000」

沒有留言:

張貼留言