Repregunta sobre Problemas con decimales en carga vía DTS

28/11/2003 - 11:41 por c | Informe spam
Hola,
Ayer preguntaba:
Estoy cargando mediante un DTS datos de archivos de texto
vía Tranform Data Task y estos archivos vienen con
números decimales con COMA (ej: 21,35) pero cuando los
importa el campo que lo almacena me queda 2135 en vez de
21,35. El campo es de tipo float y el usuario de las
conexiones es un usuario SQL Server que estaba en Inglés
pero ahora lo pase a Español, pero sigue cargándome por
ej. 2135 en vez de 21,35.
Que puede ser?


ENTONCES QUERIA QUE ME CONFIRMARAN SI NO HAY OTRA OPCIÓN
QUE SI ME VIENE 21,35 como información en el archivo de
texto para cargarlo como decimal en una tabla de SQL
Server vía DTS mediante un Tranform Data Task tengo que
usar un "ActiveXScript" en la solapa de Transformation
Yo actualmente la transformación la hago en el DTS con el
Transform Data Task pero uso "COPY COLUMN" para pasar
directamente y NO tengo que hacer transformaciones que me
relentizarán la carga...

ME PODRÍAN CONFIRMAR QUE NO QUEDA OTRA OPCIÓN PARA QUE
CARGUE CORRECTAMENTE LOS NÚMEROS DECIMALES!

Si esto es así que código tendría que poner entonces para
hacer esta transformación?


Más datos
* Ya se que usar el PUNTO sería mucho más bueno que la
COMA en los números decimales que vienen en los archivos
de texto, y también siempre lo use así, por eso NUNCA
antes me había pasado esto pero es lo que tengo (y esto
si que NO se puede cambiar)
* El fichero de texto viene con TABS como separadores.
* El usuario de SQL Server lo probé en Inglés y en
Español.
* En el Panel de Control tengo la COMA como separador de
decimales y el PUNTO como separador de miles... (o sea
correcto)
* Si tengo que cambiar algo del Panel de control en el
servidor lo cambio pues se utiliza sólo para esto.
* El dato viene como 21,35 NO como 21.35 y me lo carga
como 2135
* Los campos a los que pasa del archivo de texto a la
tabla respectiva son de tipo Float (ya se que los Numeric
serían más adecuados pero se hizo así porque cabía la
posibilidad de que pasara la información a un cubo de SQL
OLAP. (Si fuera NECESARIO lo cambiaría!!)
* Para probar Reemplace las , por . en los archivos de
Texto y funcionó perfectamente!!! Es decir si estaba
21.35 me cargaba este número correctamente

Preguntas similare

Leer las respuestas

#1 Accotto Maximiliano D.
28/11/2003 - 13:25 | Informe spam
holas!! otra vez nos vemos!!

bueno no lo probe esto y te lo comente ayer!! vos cuando haces el DTS podes
usar Vbscript sabias?
Si lo usas ves los dts destino y origen!! en los de destino habria q ver si
este vbscipt soporta la funcion Replace de VB, esta funcion lo q hace es
reemplazar una cosa por otra, ej el punto por la coma

bien!! ahora vos el campo lo tenes como float verdad?
esto no lo podes cambiar a decimal por ej?

un saludo como siempre


Maximiliano Damian Accotto
"c" escribió en el mensaje
news:8ae701c3b59c$3f6a90e0$
Hola,
Ayer preguntaba:
Estoy cargando mediante un DTS datos de archivos de texto
vía Tranform Data Task y estos archivos vienen con
números decimales con COMA (ej: 21,35) pero cuando los
importa el campo que lo almacena me queda 2135 en vez de
21,35. El campo es de tipo float y el usuario de las
conexiones es un usuario SQL Server que estaba en Inglés
pero ahora lo pase a Español, pero sigue cargándome por
ej. 2135 en vez de 21,35.
Que puede ser?


ENTONCES QUERIA QUE ME CONFIRMARAN SI NO HAY OTRA OPCIÓN
QUE SI ME VIENE 21,35 como información en el archivo de
texto para cargarlo como decimal en una tabla de SQL
Server vía DTS mediante un Tranform Data Task tengo que
usar un "ActiveXScript" en la solapa de Transformation
Yo actualmente la transformación la hago en el DTS con el
Transform Data Task pero uso "COPY COLUMN" para pasar
directamente y NO tengo que hacer transformaciones que me
relentizarán la carga...

ME PODRÍAN CONFIRMAR QUE NO QUEDA OTRA OPCIÓN PARA QUE
CARGUE CORRECTAMENTE LOS NÚMEROS DECIMALES!

Si esto es así que código tendría que poner entonces para
hacer esta transformación?


Más datos
* Ya se que usar el PUNTO sería mucho más bueno que la
COMA en los números decimales que vienen en los archivos
de texto, y también siempre lo use así, por eso NUNCA
antes me había pasado esto pero es lo que tengo (y esto
si que NO se puede cambiar)
* El fichero de texto viene con TABS como separadores.
* El usuario de SQL Server lo probé en Inglés y en
Español.
* En el Panel de Control tengo la COMA como separador de
decimales y el PUNTO como separador de miles... (o sea
correcto)
* Si tengo que cambiar algo del Panel de control en el
servidor lo cambio pues se utiliza sólo para esto.
* El dato viene como 21,35 NO como 21.35 y me lo carga
como 2135
* Los campos a los que pasa del archivo de texto a la
tabla respectiva son de tipo Float (ya se que los Numeric
serían más adecuados pero se hizo así porque cabía la
posibilidad de que pasara la información a un cubo de SQL
OLAP. (Si fuera NECESARIO lo cambiaría!!)
* Para probar Reemplace las , por . en los archivos de
Texto y funcionó perfectamente!!! Es decir si estaba
21.35 me cargaba este número correctamente
Respuesta Responder a este mensaje
#2 Accotto Maximiliano D.
28/11/2003 - 13:48 | Informe spam
estimado!!

tengo la solucion a tu problema sin tocar nada ni en el servidor ni en el
archivo?

aca hice la misma prueba q vos y me paso lo mismo :-) , eso es bueno porque
pudimos replicar el error

Bien te cuento lo q hice, q basicamente tye lo habia dicho pero sin probar!!
Use la funcion de Vbscript Replace dentro del DTS y funciona de lo mejor

la cosa me quedo asi:

'**********************************************************************
' Visual Basic Transformation Script
' Copy each source column to the
' destination column
'************************************************************************

Function Main()
DTSDestination("COL") = replace(DTSSource("col1"),",",".")
Main = DTSTransformStat_OK
End Function


:-) asi funciona!!

si queres te mando todo el DTS si te interesa!! pero lo hice simple

Un excel con una columna q puse valores decimales con ,
y esta la importe a un float
bue ej: 10,5
me ponia 105

con esto nuevo pone 10.5

Un saludo y suerte
Cualquier cosa me decis (estoy siempre aqui ;-)




Maximiliano Damian Accotto
"c" escribió en el mensaje
news:8ae701c3b59c$3f6a90e0$
Hola,
Ayer preguntaba:
Estoy cargando mediante un DTS datos de archivos de texto
vía Tranform Data Task y estos archivos vienen con
números decimales con COMA (ej: 21,35) pero cuando los
importa el campo que lo almacena me queda 2135 en vez de
21,35. El campo es de tipo float y el usuario de las
conexiones es un usuario SQL Server que estaba en Inglés
pero ahora lo pase a Español, pero sigue cargándome por
ej. 2135 en vez de 21,35.
Que puede ser?


ENTONCES QUERIA QUE ME CONFIRMARAN SI NO HAY OTRA OPCIÓN
QUE SI ME VIENE 21,35 como información en el archivo de
texto para cargarlo como decimal en una tabla de SQL
Server vía DTS mediante un Tranform Data Task tengo que
usar un "ActiveXScript" en la solapa de Transformation
Yo actualmente la transformación la hago en el DTS con el
Transform Data Task pero uso "COPY COLUMN" para pasar
directamente y NO tengo que hacer transformaciones que me
relentizarán la carga...

ME PODRÍAN CONFIRMAR QUE NO QUEDA OTRA OPCIÓN PARA QUE
CARGUE CORRECTAMENTE LOS NÚMEROS DECIMALES!

Si esto es así que código tendría que poner entonces para
hacer esta transformación?


Más datos
* Ya se que usar el PUNTO sería mucho más bueno que la
COMA en los números decimales que vienen en los archivos
de texto, y también siempre lo use así, por eso NUNCA
antes me había pasado esto pero es lo que tengo (y esto
si que NO se puede cambiar)
* El fichero de texto viene con TABS como separadores.
* El usuario de SQL Server lo probé en Inglés y en
Español.
* En el Panel de Control tengo la COMA como separador de
decimales y el PUNTO como separador de miles... (o sea
correcto)
* Si tengo que cambiar algo del Panel de control en el
servidor lo cambio pues se utiliza sólo para esto.
* El dato viene como 21,35 NO como 21.35 y me lo carga
como 2135
* Los campos a los que pasa del archivo de texto a la
tabla respectiva son de tipo Float (ya se que los Numeric
serían más adecuados pero se hizo así porque cabía la
posibilidad de que pasara la información a un cubo de SQL
OLAP. (Si fuera NECESARIO lo cambiaría!!)
* Para probar Reemplace las , por . en los archivos de
Texto y funcionó perfectamente!!! Es decir si estaba
21.35 me cargaba este número correctamente
Respuesta Responder a este mensaje
#3 c
28/11/2003 - 15:19 | Informe spam
Desde ya muchísimas gracias Maximiliano!!!!!

Lo que si quiero saber es SI NO HAY ALGUNA POSIBILIDAD DE
HACERLO CON el "COPY COLUMN" del Transform Data Task en
vez de con el "ActiveXScript" y poniendo ese código que
te digo...
Una por la performance pues son muchos datos y segundo
porque tendría que hacer muchas modificaciones...
Me parece muy extraño que porque haya una coma en vez de
un punto en los datos numéricos de los archivos de texto
NO se pueda tomar como decimal ?????????????




estimado!!

tengo la solucion a tu problema sin tocar nada ni en el


servidor ni en el
archivo?

aca hice la misma prueba q vos y me paso lo mismo :-) ,


eso es bueno porque
pudimos replicar el error

Bien te cuento lo q hice, q basicamente tye lo habia


dicho pero sin probar!!
Use la funcion de Vbscript Replace dentro del DTS y


funciona de lo mejor

la cosa me quedo asi:

'********************************************************


**************
' Visual Basic Transformation Script
' Copy each source column to the
' destination column
'********************************************************


****************

Function Main()
DTSDestination("COL") = replace(DTSSource


("col1"),",",".")
Main = DTSTransformStat_OK
End Function


:-) asi funciona!!

si queres te mando todo el DTS si te interesa!! pero lo


hice simple

Un excel con una columna q puse valores decimales con ,
y esta la importe a un float
bue ej: 10,5
me ponia 105

con esto nuevo pone 10.5

Un saludo y suerte
Cualquier cosa me decis (estoy siempre aqui ;-)




Maximiliano Damian Accotto
"c" escribió en el


mensaje
news:8ae701c3b59c$3f6a90e0$
Hola,
Ayer preguntaba:
Estoy cargando mediante un DTS datos de archivos de texto
vía Tranform Data Task y estos archivos vienen con
números decimales con COMA (ej: 21,35) pero cuando los
importa el campo que lo almacena me queda 2135 en vez de
21,35. El campo es de tipo float y el usuario de las
conexiones es un usuario SQL Server que estaba en Inglés
pero ahora lo pase a Español, pero sigue cargándome por
ej. 2135 en vez de 21,35.
Que puede ser?


ENTONCES QUERIA QUE ME CONFIRMARAN SI NO HAY OTRA OPCIÓN
QUE SI ME VIENE 21,35 como información en el archivo de
texto para cargarlo como decimal en una tabla de SQL
Server vía DTS mediante un Tranform Data Task tengo que
usar un "ActiveXScript" en la solapa de Transformation
Yo actualmente la transformación la hago en el DTS con el
Transform Data Task pero uso "COPY COLUMN" para pasar
directamente y NO tengo que hacer transformaciones que me
relentizarán la carga...

ME PODRÍAN CONFIRMAR QUE NO QUEDA OTRA OPCIÓN PARA QUE
CARGUE CORRECTAMENTE LOS NÚMEROS DECIMALES!

Si esto es así que código tendría que poner entonces para
hacer esta transformación?


Más datos
* Ya se que usar el PUNTO sería mucho más bueno que la
COMA en los números decimales que vienen en los archivos
de texto, y también siempre lo use así, por eso NUNCA
antes me había pasado esto pero es lo que tengo (y esto
si que NO se puede cambiar)
* El fichero de texto viene con TABS como separadores.
* El usuario de SQL Server lo probé en Inglés y en
Español.
* En el Panel de Control tengo la COMA como separador de
decimales y el PUNTO como separador de miles... (o sea
correcto)
* Si tengo que cambiar algo del Panel de control en el
servidor lo cambio pues se utiliza sólo para esto.
* El dato viene como 21,35 NO como 21.35 y me lo carga
como 2135
* Los campos a los que pasa del archivo de texto a la
tabla respectiva son de tipo Float (ya se que los Numeric
serían más adecuados pero se hizo así porque cabía la
posibilidad de que pasara la información a un cubo de SQL
OLAP. (Si fuera NECESARIO lo cambiaría!!)
* Para probar Reemplace las , por . en los archivos de
Texto y funcionó perfectamente!!! Es decir si estaba
21.35 me cargaba este número correctamente


.

Respuesta Responder a este mensaje
#4 Accotto Maximiliano D.
28/11/2003 - 15:23 | Informe spam
mira yo como te repito uso el punto y lo trato de pasar todo a punto!!

no se de cuantos registros hablas pero poque no probas si esta solucion es
lenta?

un saludo

Maximiliano Damian Accotto
"c" escribió en el mensaje
news:07d401c3b5ba$a5fece70$
Desde ya muchísimas gracias Maximiliano!!!!!

Lo que si quiero saber es SI NO HAY ALGUNA POSIBILIDAD DE
HACERLO CON el "COPY COLUMN" del Transform Data Task en
vez de con el "ActiveXScript" y poniendo ese código que
te digo...
Una por la performance pues son muchos datos y segundo
porque tendría que hacer muchas modificaciones...
Me parece muy extraño que porque haya una coma en vez de
un punto en los datos numéricos de los archivos de texto
NO se pueda tomar como decimal ?????????????




estimado!!

tengo la solucion a tu problema sin tocar nada ni en el


servidor ni en el
archivo?

aca hice la misma prueba q vos y me paso lo mismo :-) ,


eso es bueno porque
pudimos replicar el error

Bien te cuento lo q hice, q basicamente tye lo habia


dicho pero sin probar!!
Use la funcion de Vbscript Replace dentro del DTS y


funciona de lo mejor

la cosa me quedo asi:

'********************************************************


**************
' Visual Basic Transformation Script
' Copy each source column to the
' destination column
'********************************************************


****************

Function Main()
DTSDestination("COL") = replace(DTSSource


("col1"),",",".")
Main = DTSTransformStat_OK
End Function


:-) asi funciona!!

si queres te mando todo el DTS si te interesa!! pero lo


hice simple

Un excel con una columna q puse valores decimales con ,
y esta la importe a un float
bue ej: 10,5
me ponia 105

con esto nuevo pone 10.5

Un saludo y suerte
Cualquier cosa me decis (estoy siempre aqui ;-)




Maximiliano Damian Accotto
"c" escribió en el


mensaje
news:8ae701c3b59c$3f6a90e0$
Hola,
Ayer preguntaba:
Estoy cargando mediante un DTS datos de archivos de texto
vía Tranform Data Task y estos archivos vienen con
números decimales con COMA (ej: 21,35) pero cuando los
importa el campo que lo almacena me queda 2135 en vez de
21,35. El campo es de tipo float y el usuario de las
conexiones es un usuario SQL Server que estaba en Inglés
pero ahora lo pase a Español, pero sigue cargándome por
ej. 2135 en vez de 21,35.
Que puede ser?


ENTONCES QUERIA QUE ME CONFIRMARAN SI NO HAY OTRA OPCIÓN
QUE SI ME VIENE 21,35 como información en el archivo de
texto para cargarlo como decimal en una tabla de SQL
Server vía DTS mediante un Tranform Data Task tengo que
usar un "ActiveXScript" en la solapa de Transformation
Yo actualmente la transformación la hago en el DTS con el
Transform Data Task pero uso "COPY COLUMN" para pasar
directamente y NO tengo que hacer transformaciones que me
relentizarán la carga...

ME PODRÍAN CONFIRMAR QUE NO QUEDA OTRA OPCIÓN PARA QUE
CARGUE CORRECTAMENTE LOS NÚMEROS DECIMALES!

Si esto es así que código tendría que poner entonces para
hacer esta transformación?


Más datos
* Ya se que usar el PUNTO sería mucho más bueno que la
COMA en los números decimales que vienen en los archivos
de texto, y también siempre lo use así, por eso NUNCA
antes me había pasado esto pero es lo que tengo (y esto
si que NO se puede cambiar)
* El fichero de texto viene con TABS como separadores.
* El usuario de SQL Server lo probé en Inglés y en
Español.
* En el Panel de Control tengo la COMA como separador de
decimales y el PUNTO como separador de miles... (o sea
correcto)
* Si tengo que cambiar algo del Panel de control en el
servidor lo cambio pues se utiliza sólo para esto.
* El dato viene como 21,35 NO como 21.35 y me lo carga
como 2135
* Los campos a los que pasa del archivo de texto a la
tabla respectiva son de tipo Float (ya se que los Numeric
serían más adecuados pero se hizo así porque cabía la
posibilidad de que pasara la información a un cubo de SQL
OLAP. (Si fuera NECESARIO lo cambiaría!!)
* Para probar Reemplace las , por . en los archivos de
Texto y funcionó perfectamente!!! Es decir si estaba
21.35 me cargaba este número correctamente


.

Respuesta Responder a este mensaje
#5 c
28/11/2003 - 16:14 | Informe spam
Lo he probado Maximiliano y si me va más lento... Y
tendría que tratar de acelerar... POR ESO ME VIENE
BARBARO EL COPY COLUMN pero tengo ese problema con los
decimales y la COMA...
Yo también siempre use PUNTO en vez de COMA (pero acá
está así y No puedo hacer nada), puedo cambiar cualquier
cosa menos que venga con PUNTO en vez de con COMA...

mira yo como te repito uso el punto y lo trato de pasar


todo a punto!!

no se de cuantos registros hablas pero poque no probas


si esta solucion es
lenta?

un saludo

Maximiliano Damian Accotto
"c" escribió en el


mensaje
news:07d401c3b5ba$a5fece70$
Desde ya muchísimas gracias Maximiliano!!!!!

Lo que si quiero saber es SI NO HAY ALGUNA POSIBILIDAD DE
HACERLO CON el "COPY COLUMN" del Transform Data Task en
vez de con el "ActiveXScript" y poniendo ese código que
te digo...
Una por la performance pues son muchos datos y segundo
porque tendría que hacer muchas modificaciones...
Me parece muy extraño que porque haya una coma en vez de
un punto en los datos numéricos de los archivos de texto
NO se pueda tomar como decimal ?????????????




estimado!!

tengo la solucion a tu problema sin tocar nada ni en el


servidor ni en el
archivo?

aca hice la misma prueba q vos y me paso lo mismo :-) ,


eso es bueno porque
pudimos replicar el error

Bien te cuento lo q hice, q basicamente tye lo habia


dicho pero sin probar!!
Use la funcion de Vbscript Replace dentro del DTS y


funciona de lo mejor

la cosa me quedo asi:

'*******************************************************




*
**************
' Visual Basic Transformation Script
' Copy each source column to the
' destination column
'*******************************************************




*
****************

Function Main()
DTSDestination("COL") = replace(DTSSource


("col1"),",",".")
Main = DTSTransformStat_OK
End Function


:-) asi funciona!!

si queres te mando todo el DTS si te interesa!! pero lo


hice simple

Un excel con una columna q puse valores decimales con ,
y esta la importe a un float
bue ej: 10,5
me ponia 105

con esto nuevo pone 10.5

Un saludo y suerte
Cualquier cosa me decis (estoy siempre aqui ;-)




Maximiliano Damian Accotto
"c" escribió en el


mensaje
news:8ae701c3b59c$3f6a90e0$
Hola,
Ayer preguntaba:
Estoy cargando mediante un DTS datos de archivos de




texto
vía Tranform Data Task y estos archivos vienen con
números decimales con COMA (ej: 21,35) pero cuando los
importa el campo que lo almacena me queda 2135 en vez de
21,35. El campo es de tipo float y el usuario de las
conexiones es un usuario SQL Server que estaba en Inglés
pero ahora lo pase a Español, pero sigue cargándome por
ej. 2135 en vez de 21,35.
Que puede ser?


ENTONCES QUERIA QUE ME CONFIRMARAN SI NO HAY OTRA OPCIÓN
QUE SI ME VIENE 21,35 como información en el archivo de
texto para cargarlo como decimal en una tabla de SQL
Server vía DTS mediante un Tranform Data Task tengo que
usar un "ActiveXScript" en la solapa de Transformation
Yo actualmente la transformación la hago en el DTS con




el
Transform Data Task pero uso "COPY COLUMN" para pasar
directamente y NO tengo que hacer transformaciones que




me
relentizarán la carga...

ME PODRÍAN CONFIRMAR QUE NO QUEDA OTRA OPCIÓN PARA QUE
CARGUE CORRECTAMENTE LOS NÚMEROS DECIMALES!

Si esto es así que código tendría que poner entonces




para
hacer esta transformación?


Más datos
* Ya se que usar el PUNTO sería mucho más bueno que la
COMA en los números decimales que vienen en los archivos
de texto, y también siempre lo use así, por eso NUNCA
antes me había pasado esto pero es lo que tengo (y esto
si que NO se puede cambiar)
* El fichero de texto viene con TABS como separadores.
* El usuario de SQL Server lo probé en Inglés y en
Español.
* En el Panel de Control tengo la COMA como separador de
decimales y el PUNTO como separador de miles... (o sea
correcto)
* Si tengo que cambiar algo del Panel de control en el
servidor lo cambio pues se utiliza sólo para esto.
* El dato viene como 21,35 NO como 21.35 y me lo carga
como 2135
* Los campos a los que pasa del archivo de texto a la
tabla respectiva son de tipo Float (ya se que los




Numeric
serían más adecuados pero se hizo así porque cabía la
posibilidad de que pasara la información a un cubo de




SQL
OLAP. (Si fuera NECESARIO lo cambiaría!!)
* Para probar Reemplace las , por . en los archivos de
Texto y funcionó perfectamente!!! Es decir si estaba
21.35 me cargaba este número correctamente


.





.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida