关于DTS中“映射列转换”中的怪事
samdx 2004-01-30 09:59:37 [目的:]
把一个.csv的文件数据导入到一个数据表中,CSV文件行格式如下:
"01/09/2004 17:15:00.031","721358848","249421824","2.3365637893972773","10899456","99.999206330139927","831.48385781937316","0"
其中需要把"01/09/2004 17:15:00.031"的这一列转换成DATETIME格式,也就是说"2004-1-9 17:15:00.031"
[过程:]
1.导入数据
2.选择数据源:文本文件:TEST.CSV
3.选择文件格式:选择跳过第一行(因已经建表,并存在列名,且TEST.CSV第一行包含列名),其他选择默认。
4.选择源表和视图:选择转换-->转换-->在将信息复制到目的时对其进行转换-->脚本修改如下:(China_Standard_Time为DATETIME型)
原:DTSDestination("China_Standard_Time") = DTSSource("Col001")
修改a:DTSDestination("China_Standard_Time") = Convert(DATETIME,DTSSource("Col001"))
修改b:DTSDestination("China_Standard_Time") = CAST(DTSSource("Col001") AS DATETIME)
修改c:DTSDestination("China_Standard_Time") = CDATE(DTSSource("Col001"))
5.按下一步导入。
[结果:]
无论按照上面abc那一种修改,都无法导入库。
出现下面的错误:
=====================================================================
*在转换"AxScriptXform"期间在行号为1处出错。到目前为止遇到错误数:1。*
*错误代码:0 *
*错误源=Microsoft VBScript 运行时错误 *
*错误描述:类型不匹配:'Convert' *
*第7行出错 *
=====================================================================
查看第7行数据,并没有异常:
"01/09/2004 18:15:00.031","722309120","248434688","1.6300002106449232","10768384","1.8131510333333378","794.02343594498006","0"
望各位赐教!谢谢大家!