由于每次需要导入导出的存储过程比较多,我想找一种比较快捷的实现方法。如果通过PLSQL导出的话,导出的存储过程是以sql的形式导出来的,同时在文件中也会生成注释语句: eg:
------------------------------------------------
-- Export file for user SLGSCGL               --
-- Created by milering on 2011-12-6, 16:26:00 --
------------------------------------------------spool proc.logprompt
prompt Creating procedure PROC_TEST
prompt ==================================
promptCREATE OR REPLACE PROCEDURE PROC_TEST  ......
  ......END PROC_TEST
/
spool off
在我导入时,在PLSQL中是不能识别这些注释语句的,我得手动删除。但是我的存储过程量特别多,一个个删得话效率太低。不用exp导出整个库,我只导出存储过程然后添加到另外一个数据库上,请问大家有没有什么好的方法。

解决方案 »

  1.   

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

  2.   

    LuiseRADL 你好。如果用PLSQL的Export User Objects 和 Import User Objects,那么如果对象的数量太多,要删除那些注释语言,是一个很大的工作量阿
      

  3.   

     谢谢二楼,再次看了下你的方法,可以了。用sqlplus的话它可以识别那些注释语言,我之前用的是PL/SQL Developer导入,所以会出现不能识别的情况。 非常感谢。问题解决。