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

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

1.尝试使用sqlserver managerment studio导出

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

通过navicat从sqlserver向oracle导入数据库_第1张图片
错误信息

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

通过navicat从sqlserver向oracle导入数据库_第2张图片
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

通过navicat从sqlserver向oracle导入数据库_第3张图片
oracle自身的启动方式

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

2.尝试使用navicat导入

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

通过navicat从sqlserver向oracle导入数据库_第4张图片
针对某一个表空间进行导入
通过navicat从sqlserver向oracle导入数据库_第5张图片
选择ODBC


通过navicat从sqlserver向oracle导入数据库_第6张图片
选择源数据库


通过navicat从sqlserver向oracle导入数据库_第7张图片
测试连接sqlserver


通过navicat从sqlserver向oracle导入数据库_第8张图片
选择要导入的表


通过navicat从sqlserver向oracle导入数据库_第9张图片
确认表的数量


通过navicat从sqlserver向oracle导入数据库_第10张图片
这一步navicat会自动转换sql类型


通过navicat从sqlserver向oracle导入数据库_第11张图片
成功!

你可能感兴趣的:(通过navicat从sqlserver向oracle导入数据库)