通过navicat从sqlserver向oracle导入数据库

公司最近接了个项目,开始决定使用sqlserver数据库,但由于项目整合原因换成oracle,sqlserver与oracle有很大的区别,但最要命的事sqlserver表结构已经建好了,能不能把表结构直接从sqlserver导入到oracle中去呢?

1.尝试使用sqlserver managerment studio导出

由于平常用sqlserver比较多,惯性思维的给自己一个心理暗示,我能从sqlserver导出(其实并不能…)用了很多方式,结果都是一样报了一个这样的错误

错误信息

通过搜索引擎发现问题是因为oracle的环境变量问题,我个人平常通过navicat这个可视化工具来使用oracle发现了一个问题,那就是navicat集成了一个迷你oracle客户端,通过该迷你客户端的oci.dll访问oracle数据库,而不是oracle数据库本身的的oci.dll

navicat访问oracle的启动方式

这是navicatd oci.dll的依赖路径E:\javaSoftware\Navicat for Oracle\instantclient_10_2\oci.dll

而环境变量里oracle自带的依赖路径的则是 E:\oraclexe\app\oracle\product\11.2.0\server\bin

oracle自身的启动方式

sqlserver的导出是根据oracle现有的依赖去访问oracle,也就是环境变量中的依赖,这与navicat访问方式有所不同,其中涉及oracle32位和64位客户端启动方式的问题,我并没有深究(原谅我没时间…项目太急)

2.尝试使用navicat导入

我抽了颗烟冷静了一下,emm…如果从sqlserver导出不行,那么换一种方式,你不送货上门,我去自提呢?也就是说从navicat访问sqlserver来进行数据导入?事实证明,换一种思维,一切问题迎刃而解。不仅完美支持,而且navicat自动转换oracle与sqlserver有所差异的sql类型,省去了我不少时间。以下是导入的操作流程:

针对某一个表空间进行导入
选择ODBC


选择源数据库


测试连接sqlserver


选择要导入的表


确认表的数量


这一步navicat会自动转换sql类型


成功!
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容