none
Error al convertir tipo de dato (String to Number) RRS feed

  • Pregunta

  • Hola, buena tarde.

    tengo esta base (que adjunto), pero no logro cambiar el tipo de dato para las columnas  [Unit Sales], [Value Sales], y [Units On Hand].

    La base original se encuentra en formato txt y cuando la importo a SQL me importa todo a texto, porque si le cambio el tipo de dato en el asistente también me marca error, ya verifiqué manualmente, y todo los datos son números enteros o decimales.

    Ya intenté con esto:

    alter table July alter column [POS Value Sales] real

    alter table July alter column [POS Value Sales] decimal(5,2)

    y consigo errores como este: Error converting data type varchar to real.

    Lo que quiero es que esas columnas se conviertan a números conservando sus decimales, no quiero que esas columnas queden como texto.

    Link de base de datos

    https://we.tl/t-E6SmA1pcwM

    Saludos.


    Irving Glez

    jueves, 18 de octubre de 2018 22:23

Todas las respuestas

  • Hola Gabriel Glez:

    He realizado la importación de tu archivo plano con SSIS, y encuentro errores, no de importación como string sino de datos, que no pueden encajar como números.

    En sql server existe la función try_cast, que te devuelve un nulo cuando el valor no se puede castear a lo que le estas indicando. Y te permite así resolver tus problemas con los datos.

    select j.[Store Units On Hand] as s,try_cast(j.[Store Units On Hand] as decimal(5,2)) as o  
    from july j
    order by o
    select j.[POS Value Sales] as s,try_cast(j.[POS Value Sales] as real) as o  
    from july j
    order by o
    go
    

    A partir de las anomalías, supongo que tendrás que eliminar las comillas, que llevan esos registros, lo cual puedes hacer con un replace

    Saludos

    viernes, 19 de octubre de 2018 6:05
  • Por cierto, si no tienes un Sql igual o superior a 2012, puedes hacer un simple SELECT * FROM JULY ORDER BY [POS VALUE SALES] y observarás como lo primero que te aparecen son valores anómalos para ser números.

    Luego cambias el POS VALUE SALES por STORE UNITS ON HAND y el resultado será lo suficientemente claro, como para ver el problema.

    viernes, 19 de octubre de 2018 6:08