我正在尝试将一个大型Access .mdb数据库导出到SQL Server数据库,但是遇到了一个问题:Microsoft DTS无法识别Access数据库中特定类型字段的数据类型。
我查看了相关的Access表格,它们被设置为“文本”类型,长度为1。如果有值,则包含单个Y或N值,但也可以为空值。
我一直在测试包含此类型字段的单个表格。当我打开“编辑映射”屏幕时,数据类型设置为-1,因此我手动将其设置为char类型,长度为1,并尝试处理该表格。这会产生以下错误消息:
我遇到了和之前一模一样的错误,这让我觉得修改其他映射文件并不能解决问题。你们有什么想法吗?
我查看了相关的Access表格,它们被设置为“文本”类型,长度为1。如果有值,则包含单个Y或N值,但也可以为空值。
我一直在测试包含此类型字段的单个表格。当我打开“编辑映射”屏幕时,数据类型设置为-1,因此我手动将其设置为char类型,长度为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>
我遇到了和之前一模一样的错误,这让我觉得修改其他映射文件并不能解决问题。你们有什么想法吗?