工具准备
1.Navicat Premium(本机)
2.sql serve数据库(服务器)
3.Oracle数据库(服务器)
这里可以用到的工具好像有很多,比如PL/SQL Developer,还有sqldeveloper,据说都可以,但是没有整成功,最终是靠Navicat拯救了职业生涯。
连接准备
既然要将sql结构转移到Oracle,那我们就要事先在Oracle里准备接收的库,也就是表空间。为了让像我一样没用过Oracle数据库的应届生不那么蛋疼,这里简单写一下Oracle创建表空间和用户名的语句。
首先找到统一存放Oracle数据的文件夹,比如我这里是D盘的oracle文件夹,在里面新建一个文件夹叫TESTDB。然后登陆Oracle数据库,执行create tablespace TESTDB datafile 'D:\oracle\TESTDB\TESTDB.DBF' size 200M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);
其中,tablespace TESTDB的TESTDB是表空间名,D:\oracle\TESTDB是我们手动新建的文件夹路径,TESTDB.DBF会通过这条语句自动生成。后面的则是对数据库容量大小增长等的一些配置。
生成表空间后,再执行create user TESTDB identified by TESTDB default tablespace TESTDB;
在这句话里,第一个TESTDB是用户名,第二个TESTDB是密码,第三个TESTDB是表空间名。最后执行grant create session ,resource , dba to TESTDB identified by TESTDB;
给TESTDB用户提供权限。
接下来回到sql serve数据库,新建一个与上述用户名一样的登录名,也就是账号密码都为TESTDB,记得在服务器角色里勾选sysadmin。
这个准备工作一是为了Oracle提供接受sql serve数据库的表空间,二是为了两个库能顺利迁移。之前Oracle用随意的用户名连接,sql serve依旧用sa用户连接,没有成功的迁移数据结构。
数据库连接
使用上述新建的账户去分别连接sql serve和Oracle,连接Oracle数据库时可能会遇到一个ORA-28547:connection to server failed,probable Oracle Net admin error
报错,直接百度ORA-28547获取解决办法即可。后面的连接过程好像还有很多坑,不过一般百度他的ORA-XXXX都能解决。
数据传输
后面的过程我不想写了,,,大家看这篇简书吧。