特定对象改写
对系统中的序列值、表和视图,可以使用虚谷数据库数据迁移工具进行迁移。如果还用到了自定义类型、存储过程、函数、触发器等,需要导出源端数据库上的定义,手动进行等价改写。
对于需要的对象ddl,可以使用管理器将其导出为SQL文件,经过人工改写后,再导入到虚谷数据库中运行。
使用sqldeveloper管理器导出
- 在工具选项栏中选择“数据库导出”。
- 勾选“导出DDL”,并选择源库Oracle作为连接,修改导出文件路径及文件名,单击“下一步”。
- 勾选需要导出的对象,然后单击“下一步”。
- 最后单击“下一步”或者“完成”,完成对象dll导出。
在SQLPlus中使用Oracle自带系统包DBMS_METADATA.GET_DDL导出指定对象
DBMS_METADATA.GET_DDL的第一个参数为对象类型名,第二个为对象名,第三个为所属模式名。-- 导出TEST模式下所有触发器的DDL到默认目录下的triggers.sql中 set pagesize 0 set long 90000 set feedback off set echo off -- 下列spool后面为导出的路径,不设置,默认在Oracle数据库的bin目录下 spool triggers.sql select DBMS_METADATA.GET_DDL('TRIGGER',u.object_name,'TEST') from all_objects u where owner='TEST' and object_type = 'TRIGGER'; spool off;
-- 导出TEST模式下所有存储过程的DDL到默认目录下的procedures.sql中 set pagesize 0 set long 90000 set feedback off set echo off -- 下列spool指定导出的路径,如不设置,则默认导出到Oracle数据库的bin目录下 spool procedures.sql select DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name,'TEST') from all_objects u where owner='TEST' and object_type = 'PROCEDURE'; spool off;
-- 导出TEST模式下所有存储函数的DDL到默认目录下的functions.sql中 set pagesize 0 set long 90000 set feedback off set echo off -- 下列spool指定导出的路径,如不设置,则默认导出到Oracle数据库的bin目录下 spool functions.sql select DBMS_METADATA.GET_DDL('FUNCTION',u.object_name,'TEST') from all_objects u where owner='TEST' and object_type = 'FUNCTION '; spool off;
通过系统包的方法可以获得所有对象的DDL