two to_varchar to_number to_char number moneda formato fecha ejemplos decimals oracle plsql oracle11g

oracle - to_varchar - ¿Por qué TO_CHAR agrega espacio(un carácter blanco) al comienzo de un número?



to_number oracle format mask (1)

No, no es un error, es el comportamiento documentado .

Los valores de devolución negativos contienen automáticamente un signo negativo inicial y los valores positivos contienen automáticamente un espacio inicial a menos que el modelo de formato contenga el elemento de formato MI, S o PR.

Puede usar un modificador de modelo de formato para cambiar este comportamiento; en este caso, el modificador FM ''fill mode'' (aunque la documentación realmente no habla sobre su uso con modelos de formato numérico):

SELECT to_char(LEVEL - 1, ''fm0000'') ...

SQL Fiddle .

Mientras preparaba este SQL Fiddle basado en este código:

WITH l_cur AS (SELECT to_char(LEVEL - 1, ''0000'') dd FROM dual CONNECT BY LEVEL <= 10) SELECT '''''''' || d1.dd || '''''''' o, '''''''' || d2.dd || '''''''' n FROM (SELECT dd, row_number() over(ORDER BY 1) rn FROM l_cur) d1, (SELECT dd, row_number() over(ORDER BY dbms_random.random) rn FROM l_cur) d2 WHERE d1.rn = d2.rn; O N ------- ------- '' 0000'' '' 0000'' '' 0001'' '' 0005'' '' 0002'' '' 0009'' '' 0003'' '' 0003'' '' 0004'' '' 0002'' '' 0005'' '' 0008'' '' 0006'' '' 0006'' '' 0007'' '' 0001'' '' 0008'' '' 0007'' '' 0009'' '' 0004'' 10 rows selected

Para funcionar to_char es agregar un carácter en blanco '''' (espacio) al comienzo. ¿Es esto un error de Oracle?