oracle plsql中包的备份

Backup of package in oracle plsql

我是 pl/sql 的新手,我有一个 pkg_body,我想对其进行更改。但在此之前,我想备份原始 pkg。那么我可以创建一个名为 **_bkp 的新 pkg 并将代码复制到其中吗?

网上搜索到下面的代码

set pagesize 0
set linesize 800
set trimspool on
set heading off
set feedback off
spool filename.pkb
select text from dba_source where name='objectname' and type='PACKAGE BODY';
spool off
exit

但是我应该这样做吗?我不能用不同的名称创建一个新的 pkg 并将原始代码复制到其中然后进行更改吗?

谢谢

在 PL/SQL 开发人员中,顶部菜单栏有一个名为“工具”的项目。

  • 左键单击 select 这个
  • 出现下拉列表select导出用户对象
  • 将用户更改为包的所有者
  • 单击“姓名”列右上角的小空白方块以按姓名排序
  • 左键单击 select 包头和正文
  • 点击右下角的文件夹图标和select备份的目的地和名称
  • 点击导出
  • 关闭window
  • 恢复在 PL/SQL 开发人员中作为命令 window 和 运行
  • 打开文件

这就是源代码控制(例如 SVN、PVCS 等)的用途。

但是,您可以执行以下操作。

select dbms_metadata.get_ddl('PACKAGE_SPEC', 'your-package-name-here', user) from dual;

然后,编辑返回的 CLOB 以更改名称。对包体做同样的事情。

select dbms_metadata.get_ddl('PACKAGE_BODY', 'your-package-name-here', user) from dual;

但同样,您应该使用 SVN 或类似的东西。要进行更改,请编辑从 SVN 获得的 DDL 文件并将其 运行 保存在数据库中。不要使用 SQL*Navigator/TOAD 能力直接编辑包并将它们 "save" 到数据库。除非你是团队中唯一的开发人员。