今天上午遇到的问题,当从文本文件倒入数据到Sqlserver 2005时出现一下错误:"[Flat File Source [1]] Error: Data conversion failed. The data conversion for column “Column 2” returned status value 4 and status text “Text was truncated or one or more characters had no match in the target code page.”. "。数据来源是Baan系统,出错的字段是供应商名称,查了一下Oracle数据库,知道这个字段长度为60个字符。而在做Data Conversion的时候,默认的转换为Unicode String[DT_WSTR] 50(见下图),这里只能改成60才行。
今天在使用SSIS从Sql Server 2000导出数据到Sql Server 2005中的时候出现了以下错误。
<br/><br/>Error at StaffViewBak [OLE DB Destination [16]]: Column "Staff_Name" cannot convert between unicode and non-unicode string data types.<br/><br/>Error at StaffViewBak [DTS.Pipeline]: One or more component failed validation.<br/><br/>Error at StaffViewBak: There were errors during task validation.<br/><br/> (Microsoft.DataTransformationServices.VsIntegration)<br/><br/>
SSIS(SQL Server Integration Service)是Sql Server 2005的一大亮点,相比较SQL Server 2000的DTS,无论是在可视化的编辑环境还是API接口上都有了很大的进步。但SSIS并不简单的是DTS的升级版本,DTS在底层的实现上据说已经被大幅度的修改, 现在的SSIS看起来越来越像一个专业的ETL工具。在可视化操作方面,微软继续着自己在这方面的优势,已经几乎无所不包的Visual Studio 2005又把SSIS中的ETL操作加入进来,新建一个New Project,选择Business Intelligence Projects中的Integration Service Project,马上就能看到SSIS可视化环境的庐山真面目了。
SSIS强大的参数设置功能在一定程度上简化了SSIS的Package(Package:SSIS基本的可执行单位)程序调用。在Visual Studio 中一个SSIS包的对应一个.dtsx文件,C#(或者其他支持CRL的语言)执行一个Package过程典型地分为以下三个步骤:一,用一个XmlDocument装载指定路径的.dtsx文件,然后由Package类将该XmlDocument进行解析,此时在后台构建了Package内部的各个部件,比如ConnectionManagers,Variables,各种类型的Task等;二,对各种参数进行赋值,比如提供数据库连接所需的ServerName和DBName,SQL语句中where条件子句部分的赋值;