我有很多表,我正在使用SSIS将数据从Oracle引入SQL Server,在此过程中我想将所有varchar字段转换为nvarchar . 我知道我可以使用数据转换变换器,但似乎唯一的方法是逐个设置每个字段,然后我必须手动设置目标组件中的映射以映射到“副本”字段 . 我有成千上万的字段,将它设置在每个字段上会很繁琐......有没有办法说“如果字段是DT_STR转换为DT_WSTR”?
你可以做的是,不是在运行脚本之前手动用nvarchar替换varchar,而是将SSIS生成的所有create table脚本保存到文档中 . 然后,您可以在文档中执行全局替换nvarchar x varchar . 然后使用修改后的脚本作为SSIS包中的一个步骤来创建表,然后使用Oracle中的数据填充它们 .
正确的方法是使用数据转换步骤......
也就是说,如果您在SSIS中禁用外部元数据验证,则可以绕过此错误 . 然后,SQL将使用隐式转换为目标类型 .
有关快速说明,请参阅this SO post .
2 回答
你可以做的是,不是在运行脚本之前手动用nvarchar替换varchar,而是将SSIS生成的所有create table脚本保存到文档中 . 然后,您可以在文档中执行全局替换nvarchar x varchar . 然后使用修改后的脚本作为SSIS包中的一个步骤来创建表,然后使用Oracle中的数据填充它们 .
正确的方法是使用数据转换步骤......
也就是说,如果您在SSIS中禁用外部元数据验证,则可以绕过此错误 . 然后,SQL将使用隐式转换为目标类型 .
有关快速说明,请参阅this SO post .