日期:2014-05-16  浏览次数:20856 次

求一个好的Oracle对象导入导出方式
由于每次需要导入导出的存储过程比较多,我想找一种比较快捷的实现方法。如果通过PLSQL导出的话,导出的存储过程是以sql的形式导出来的,同时在文件中也会生成注释语句: 

eg:
------------------------------------------------
-- Export file for user SLGSCGL --
-- Created by milering on 2011-12-6, 16:26:00 --
------------------------------------------------

spool proc.log

prompt
prompt Creating procedure PROC_TEST
prompt ==================================
prompt

CREATE OR REPLACE PROCEDURE PROC_TEST

  ......
  ......

END PROC_TEST
/


spool off


在我导入时,在PLSQL中是不能识别这些注释语句的,我得手动删除。但是我的存储过程量特别多,一个个删得话效率太低。不用exp导出整个库,我只导出存储过程然后添加到另外一个数据库上,请问大家有没有什么好的方法。

------解决方案--------------------
在exp,imp中,没有只导出存储过程的语法。如果导出某个用户的数据,会导致该用户的所有对象(表、视图、索引、序列、函数、存储过程、触发器等等)。
 
如果只导出全部的存储过程。还是用PL/SQL Developer比较方便快速。
 
1、把存储过程导出成文本
 
在PL/SQL Developer中的"Tools"->"Export User Objects",可以选择该用户的所有存储过程,然后导出成一个文本文件。

2、导入另一个数据库中,就在sqlplus中用@\刚导出的文本文件 即可。
 
上面同样可用于只导出全部的视图、函数、触发器等等。