Necesito almohadilla de números con ceros a la izquierda (en total 8 dígitos) para su visualización. Estoy usando oracle.

select to_char(1011,'00000000') OPE_NO from dual;
select length(to_char(1011,'00000000')) OPE_NO from dual;

Lugar de ‘00001011 que’ tengo ‘00001011’.
¿Por qué obtengo un extra de líder en el espacio en blanco? ¿Cuál es el número correcto de formato de cadena para lograr esto?

P. S. me doy cuenta de que puedo usar trim(), pero quiero entender el formato de número, mejor.

@Eddie: ya he leído la documentación. Y, sin embargo, todavía no entiendo cómo deshacerse de los principales espacios en blanco.

@David: Entonces, ¿eso significa que no hay manera, pero el uso de trim()?

Véase también stackoverflow.com/questions/6695604/… no deseados, líder de los períodos (sin el cero inicial).

OriginalEl autor Ovesh | 2008-10-01

2 Comentarios

  1. 31

    Uso FM (Llenar Modo), por ejemplo,

    select to_char(1011,'FM00000000') OPE_NO from dual;

    OriginalEl autor Steve Bosman

  2. 6

    A partir de ese mismo documentación mencionado por EddieAwad:

    Negativa de devolución de valores de forma automática
    contienen un signo negativo inicial y
    valores positivos contienen automáticamente
    un líder en el espacio, a menos que el formato de
    el modelo contiene el MI, S o PR formato
    elemento.


    EDITAR: La forma correcta es utilizar la FM modificador, como contestada por Steve Bosman. Lea la sección sobre Formato Modelo De Modificadores para obtener más información.

    OriginalEl autor VVS

Dejar respuesta

Please enter your comment!
Please enter your name here