你将如何在oracle 10g中只进行存储过程备份?
答案 0 :(得分:5)
ammoQ的回答是正确的。
为了更进一步,如果你只想要没有表结构的存储过程,你需要连接到数据库并使用SQL(即使用sqlplus或其他东西)。然后,使用您感兴趣的存储过程列表,调用dbms_metadata函数。您可以使用sqlplus执行以下操作:
SELECT dbms_metadata.get_ddl('PROCEDURE','PROC1') FROM dual;
将为您提供程序PROC1的来源。
还有一个名为USER_SOURCE的视图,您可以使用以下内容:
select * from user_source where type in ('PROCEDURE', 'PACKAGE', 'PACKAGE_BODY', 'FUNCTION', 'TRIGGER');
为您提供您登录的用户拥有的所有内容的来源。
答案 1 :(得分:1)
TOAD等工具提供了导出存储过程,函数,包,触发器等源代码的功能。
如果您不介意导出表格结构(没有内容),
exp user/password file=emptybackup.dmp owner=myschema rows=n
应该这样做。
答案 2 :(得分:1)
如果你没有处理配置管理,即没有将你的存储过程保存在适当的源代码控制应用程序中(例如CVS,Subversion,MSS),你只是做不对的事 。即使是单人团队也应该使用版本控制系统,以进行任何非平凡的工作。