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" 到数据库。除非你是团队中唯一的开发人员。
我是 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" 到数据库。除非你是团队中唯一的开发人员。