我用的sqldeveloper是1.5.0.53的版本。 如果你在机子上装了oracle客户端的话,我们可能会发现一个奇怪的问题,当你执行任何操作的时候可能会发生下面的错误。
这是因为sqldeveloper用的是oracle 11g的jdbc driver, 如果装了oracle客户端的话, sqldeveloper会用到oracle客户端上的驱动 (这都是oracle_home搞得鬼)。我们在sqldeveloper的主目录下创建一个"sqldeveloper.cmd"的文件, 然后写入以下内容。
以前启动sqldeveloper就双击这个cmd文件。 其实这个文件的作用也是很明显的。 就是在启动sqldeveloper时修改oracle_home环境变量 指向当前目录。
在migration之前, 你需要创建一个repository, 这个是个中间库,会记录一下迁移数据库的信息 (就是在数据库中建议写MD_开头的表)。
在sqldeveloper最方便使用的是quick migrate,但是quick migrate只能让你选择是迁移table,data 或者所有。 所以index constraint之类的信息都会迁移过去。
在你source database中选择capture tables 或者 capture schema, 会在Captured Objects视图中出现你捕获的内容, 你可以选择删除掉一些不需要的东西, 比如外键约束,不需要导的表 等等。
准备好你捕获的信息之后,在captured model上单击右键-》Convert to Oracle Model。完成之后会在Converted Objects中生成Converted Model, 然后右键-》Generate 会生成对应的oracle数据库的sql scripts, 然后在你的target数据库运行这些脚本, 你就得到了对应的oracle的数据库结构了。 然后再在Converted Model上点击右键-》 Move Data。 选择source database和target数据库。OK。 让数据慢慢迁移吧。
参考:http://forums.oracle.com/forums/thread.jspa?messageID=2536737
- oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert
- (persistableObject.java:238)
- oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert(persistableObject.java:238)
- oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert
- (persistableObject.java:238)
- oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert(persistableObject.java:238)
- oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert
- (persistableObject.java:238)
- oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert(persistableObject.java:238)
- oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert
- (persistableObject.java:238)
- oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert(persistableObject.java:238)
- ....
- oracle.dbtools.metadata.persistence.persistenceException: Protocol Violation
oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert
(persistableObject.java:238)
oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert(persistableObject.java:238)
oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert
(persistableObject.java:238)
oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert(persistableObject.java:238)
oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert
(persistableObject.java:238)
oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert(persistableObject.java:238)
oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert
(persistableObject.java:238)
oracle.dbtools.metadata.persistence.persisitableObject.dolnInsert(persistableObject.java:238)
....
oracle.dbtools.metadata.persistence.persistenceException: Protocol Violation
这是因为sqldeveloper用的是oracle 11g的jdbc driver, 如果装了oracle客户端的话, sqldeveloper会用到oracle客户端上的驱动 (这都是oracle_home搞得鬼)。我们在sqldeveloper的主目录下创建一个"sqldeveloper.cmd"的文件, 然后写入以下内容。
- SET ORACLE_HOME=%CD%
- start sqldeveloper.exe
SET ORACLE_HOME=%CD%
start sqldeveloper.exe
以前启动sqldeveloper就双击这个cmd文件。 其实这个文件的作用也是很明显的。 就是在启动sqldeveloper时修改oracle_home环境变量 指向当前目录。
在migration之前, 你需要创建一个repository, 这个是个中间库,会记录一下迁移数据库的信息 (就是在数据库中建议写MD_开头的表)。
在sqldeveloper最方便使用的是quick migrate,但是quick migrate只能让你选择是迁移table,data 或者所有。 所以index constraint之类的信息都会迁移过去。
在你source database中选择capture tables 或者 capture schema, 会在Captured Objects视图中出现你捕获的内容, 你可以选择删除掉一些不需要的东西, 比如外键约束,不需要导的表 等等。
准备好你捕获的信息之后,在captured model上单击右键-》Convert to Oracle Model。完成之后会在Converted Objects中生成Converted Model, 然后右键-》Generate 会生成对应的oracle数据库的sql scripts, 然后在你的target数据库运行这些脚本, 你就得到了对应的oracle的数据库结构了。 然后再在Converted Model上点击右键-》 Move Data。 选择source database和target数据库。OK。 让数据慢慢迁移吧。
参考:http://forums.oracle.com/forums/thread.jspa?messageID=2536737
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14670217/viewspace-670248/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14670217/viewspace-670248/