我正试图将大型Access .mdb数据库导出到SQL Server数据库,并且已经遇到Microsoft DTS无法识别的问题访问数据库中特定类型字段的数据类型。将Access数据库转换为SQL Microsoft DTS - 数据类型'130'不在映射文件中
我看了一下有问题的访问表,它们被设置为长度为1的“文本”。它们包含单个Y或N值(如果已填充,但也可以具有空值)。
我一直在包含这种类型的字段的单个表上进行测试。当我打开“编辑映射”屏幕时,数据类型设置为-1,因此我手动将其设置为长度为1的字符类型并尝试处理该表。这将产生以下错误信息:
[Source Information]
Source Location : C:\admin\facdata.mdb
Source Provider : Microsoft.Jet.OLEDB.4.0
Table: `ACASSCATDEPREC`
Column: DepBook
Column Type: 130
SSIS Type: (Type unknown ...)
Mapping file (to SSIS type): c:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles\JetToSSIS.xml
[Destination Information]
Destination Location : SERVERNAME
Destination Provider : SQLOLEDB
Table: [dbo].[ACASSCATDEPREC]
Column: DepBook
Column Type: char
SSIS Type: string [DT_STR]
Mapping file (to SSIS type): c:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles\MSSQLToSSIS10.XML
[Conversion Steps]
Conversion unknown ...
SSIS conversion file: c:\Program Files\Microsoft SQL Server\100\DTS\binn\DtwTypeConversion.xml
我一直在阅读各种博客和它好像我需要编辑XML映射文件告诉DTS什么样的数据类型130应该是让我编辑的文件C: \ Program Files \ Microsoft SQL Server \ 100 \ DTS \ MappingFiles \ JetToSSIS.xml并再次运行它,但这没有什么区别。
我这增加了XML映射文件,然后重新启动该程序,然后再次尝试:
<dtm:DataTypeMapping >
<dtm:SourceDataType>
<dtm:DataTypeName>Char</dtm:DataTypeName>
</dtm:SourceDataType>
<dtm:DestinationDataType>
<dtm:CharacterStringType>
<dtm:DataTypeName>130</dtm:DataTypeName>
<dtm:Length>1</dtm:Length>
</dtm:CharacterStringType>
</dtm:DestinationDataType>
</dtm:DataTypeMapping>
,我得到了完全相同的错误,其实像以前一样使我相信,编辑等映射文件不会有所作为。
任何任何想法?
这是一个需要编写脚本的一次性操作还是什么?如果是一次性导入,请考虑SQL Server迁移助理for Access,它是迄今为止从Jet/ACE升级到SQL Server的最通用的工具。 – 2011-05-22 00:25:42