Usando Visual Basic Script en DTS
29 Noviembre 2007
Muchas veces al importar datos de un txt a través de DTS algunos campos no se pueden transformar directamente y por lo tanto no sirve una simple transformación Copy Column. Ante esta situación solo queda definir las tranformaciones a mano utilizando las demas disponibles (ActiveX Script, DateTime String, Lowercase String, Middle of String, etc).
En este ejemplo voy a mostrar ActiveX Script.
1) Asumiendo que ya tenes el paquete armado y solo falta definir las transformaciones te vas al tab correspondiente y elegis New.

2) De la lista elegis ActiveX Script.

3) Seteas la columna fuente y la de destino y haces clic en Properties

4) Te va a aparecer esta ventanda donde podesr escribi codigo en Visual Basic Script o JScript para aplicar las transformaciones como quieras.

En este caso quiero pasar de un archivo de texto a un tabla en la base una columna con el siguiente formato: “4.09″, osea un número decimal. El problema esta en que si hacemos un Copy Column (definiendo la columna en la tabla como un decimal(10,2) y no un varchar(4)) el paquete va a tirar error, ya que el simbolo para un decimal en SQL Server 2000 es “,” y no “.”.
Asi que para eso utilizamos la función Replace() para cambiar puntos por comas:
Function Main()
Dim datos
datos = DTSSource(”Col008″)
datos = Replace(datos, “,” , “.” , 1, 20 )
DTSDestination(”Ali_Per”) = datos
Main = DTSTransformStat_OK
End Function
Creo que no hacen falta muchos comentarios, simplemente tomos los datos fuentes en una variable, reemplazo con Replace los caracteres y luego asigno los datos a la columa de salida.
Despues seguro escribire algo sobre las demas tipos de tranformaciones… por ahora.. esto es todo…
27 Marzo 2008 at 7:23 pm
Vale, Muchas gracias
19 Junio 2008 at 5:27 am
Somehow i missed the point. Probably lost in translation
Anyway … nice blog to visit.
cheers, Unfreeze.