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.

DTS 1

2) De la lista elegis ActiveX Script.

DTS 2

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

DTS 3

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

DTS 4

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…

2 Responses to “Usando Visual Basic Script en DTS”

  1. SteelSoulHP Says:

    Vale, Muchas gracias

  2. Unfreeze Says:

    Somehow i missed the point. Probably lost in translation :) Anyway … nice blog to visit.

    cheers, Unfreeze.


Leave a Reply