Oracle spool 元数据(过程、函数、包、类型)导出

为解决版本控制不规范导致的问题,本文介绍了一个简化Oracle数据库过程、函数备份的小程序。该程序包含两个脚本:exp.bat和exp.conf,通过调整配置即可轻松备份指定的数据库对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因版本控制不规范,项目中运营同事在部署前需手动备份数据库过程、函数代码,以支持失败时回滚; 这里写了个小程序,以简化备份操作:(只针对 Oracle)


一共分两个脚本:exp.bat  和 exp.conf(执行前,修改 数据库 连接信息和备份内容即可)

 

 

exp.bat

 

sqlplus dc_data/dc_data@crs116 @c:\exp\exp.conf
pause
 

其中  @c:\exp\exp.conf 表示 查找 exp.conf 配置文件

 

exp.conf

 

set trimspool on
set linesize 2000
set pagesize 0
set newpage 1
set heading off
set term off
set long 1000000
set longc 1000000

spool  .\P_GROUP_VARCHAR_APPEND.PRC
SELECT DBMS_METADATA.GET_DDL('PROCEDURE','P_GROUP_VARCHAR_APPEND', 'DC_DATA') AS TEXT  FROM DUAL;
spool off

spool  .\F_WORKDATE.FUN
SELECT DBMS_METADATA.GET_DDL('FUNCTION', 'F_WORKDATE', 'DC_DATA') AS TEXT  FROM DUAL;
spool off

spool  .\PKG_UNITY.PKG
SELECT DBMS_METADATA.GET_DDL('PACKAGE', 'PKG_UNITY', 'DC_ETL') AS TEXT FROM DUAL;
spool off

exit

 

  文中 分别将sql语句的结果生成到相应文件; 

   .\P_GROUP_VARCHAR_APPEND.PRC    表示生成的文件名和路径(这里是相对路径)


  set long 1000000      因 DBMS_METADATA.GET_DDL() 函数返回CLOB,默认只输出前80个字符,这里进行调大

  set longc 1000000   防止CLOB写到文件里时被截断而换行   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值