Oracle学习 第19天 SqlServer数据迁移Oracle
原以为把库从SqlServer迁移到Oracle会很麻烦,晚上试了一下很简单,有现成的工具。
1、使用Oracle Sql Developer工具,去官网下载最新版,照着一步步做就可以
http://www.360doc.com/content/14/0425/11/10675863_372065835.shtml
2、要连SqlServer数据库要下载一个JTDS.jar,去网上搜一个最新版下载完,按教程添加就能连SqlServer了
sourceforge.net/projects/jtds/
3、弄两个链接,一个连SqlServer,一个连Oracle
4、在SqlServer库上右键,迁移到Oracle,按教程和提示一直下一步就可以,很快就迁移完了。
5、存储过程公司都是加密过的,无法迁移,有一个是没加密的,迁移后自动转成Oracle语法,看了一下非常令人满意,格式什么的也很整齐。明天我试下把加密去了,看下复杂的存储过程自动转化的怎么样
要是能全自动就太好了,省得存储过程要重新写一遍。
6、自增主键ID会自动加上触发器和序列,试了一张表,插入一条数据,原先的主键ID不用管,会根据触发器和序列进行自增。
7、表名和列名全是大写,Oracle都这样,看着真不顺眼,还是喜欢SqlServer风格
8、自动新建一个用户,用户名和密码都是原先SqlServer的库名
查表时会提示一个无自动统计的权限,不理它也可以,要处理的话可参考
http://blog.itpub.net/29485627/viewspace-1291573/
现象:
第一次用PLSQL Developer连接数据库,若用sys用户登录并操作则正常,若用普通用户比如haishu登录并创建一个表则报错“动态执行表不可访问,本会话的自动统计被禁止。在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname表里获得选择权限。”
原因分析:
从报错提示就可以看出,原因在于动态性能表相关的权限没有被授权给当前用户
解决方法一(推荐):
根据提示,在执行菜单里禁止统计,具体操作方法:在顶部的菜单中选择“工具”-->“首选项”-->“选项”-->“自动统计”。把“自动统计”前面默认的√去掉。
解决方法二:
根据提示,用sys身份给haishu用户授权
grant select on V_session to haishu;
grant select on V_$sesstat to haishu;
grant select on V_$statname to haishu;
或给所有用户授权
grant select on V_$session to public;
grant select on V_$sesstat to public;
grant select on V_$statname to public;
9、表空间是放在USERS下
10、索引也跟过来了,不过原先各表的索引是可以重名的,现在Oracle索引都在一个Indexs目录下,会自动变成IX_XX1、IX_XX2
11、函数也过来了,转化的非常好。
12、包和包体没有(SqlServer就没这概念)
13、不知那些自动化定时作业怎么迁移,明天可以试下
14、通过写个小程序来处理也是可行的,不管效率如何,只要不挂掉,放在后台跑一晚甚至一个周末总够了吧
http://blog.csdn.net/sundacheng1989/article/details/26673509
适用于处理增量数据、复杂数据。
一种是数据实时取、实时插入
一种是取出数据拼成文本,拿到Oracle去执行
15、补充一个,字段名不能太长哦,取那么长名字用起来也不方便吧
Oracle中不支持30个字符以上的标识符