好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

【原创】使用SqlServer的DTS进行Oracle数据导入的注意事项

在从sql 导入 oracle的工作中,大家的思维惯式都是首先采用sqlserver的dtswizard,实在是因为这个工具 使用 直观、方便,而且在对非大表的操作中性能不错,我也是这样做的,但是在经过一系列的痛苦的操作后,我发现在 使用 的过程中还是有一些很重要的限制因

在从sql 导入 oracle的工作中,大家的思维惯式都是首先采用sqlserver的dtswizard,实在是因为这个工具 使用 直观、方便,而且在对非大表的操作中性能不错,我也是这样做的,但是在经过一系列的痛苦的操作后,我发现在 使用 的过程中还是有一些很重要的限制因素,很多人可能会遇到其中的一两点,我这里仅把我遇到的记录下来,以作参考。

一、先说常规的操作流程

1.选择源 数据 类型,这里是sql, 注意 数据 源,在次提醒, 注意 数据 源,因为他让我心痛

2.选择目的的 数据 源,这里需要特别指出,就是开始的时候我选错了 数据 源,让我白做了一个星期的工作,或者说让我开拓了不适用dtswizard导 数据 的思路,虽然很痛苦,但是很指得。废话少说, 注意 要选择“oracle Provideer for OLE DB”, 注意 这里还有一个“Microsoft OLEDB for Oracle”,我之前选择的就是第二个,导致后面在执行导出操作的时候,很多奇怪的错误。一定要选对啊。

3.填写对应的oracle 信息, 注意 数据 源的地方 使用 transnames.ora中指定的名称,允许保存密码勾选

4.默认点下一步,进入表的映射处理,这里我们做表的字段的对应处理。

5.选中对应的表,点击编辑按钮,进入后“编辑sql”,可以手工调整字段的 数据 类型。

这里微软做了一个不错的事情,在sql中与一张对应表,里面存储了sql的 数据 类型和其他类型 数据 库如oracle sysbase db2等的对应字段匹配

SELECT * FROM msdb.dbo.MSdatatype_mappings 可以从这里找到对应的字段类型匹配。

6.下一步下一步,祈祷成功吧。

二、 注意 事项

1. dts对大表 数据 的支持不是很好 。这里说的大表 数据 不能简单从 数据 量上定义,有的表 数据 量很大,但是列很少,dts依然可以很正常执行。我这里试验的标准是80万条 数据 ,几十列,中间包含text字段,在执行的时候,效率低先不错,执行好长时间后然后报错很坑爹啊。而且 数据 没导成功,表还给创建了,我得手动删除表才能再次执行,如果一次 导入 几十几百张表,中间一错误很是郁闷啊。

解决的办法是 使用 oracle的sql loader虽然麻烦点,但是效率极高,10000+/s以上的性能,还能挑剔啥。

2.个别表执行 导入 不成功 ,提示异常错误。晕,我知道异常错误是啥,只能用最传统的办法,导出 数据 ,然后用toad 导入 ,做好字段类型的设定,基本可以ok.

3.字段的设定 :我这里如果超过varchar2(2000)就报错,没办法对很多varchar(4000)的 数据 类型只能手工调整为nclob类型。

暂时想到这么多,以后有别的在补充吧。

查看更多关于【原创】使用SqlServer的DTS进行Oracle数据导入的注意事项的详细内容...

  阅读:57次