@echo off
@echo 开始备份数据库对象
::获取当前系统日期,并复制为Today变量
for /f "tokens=2 delims==" %%a in ('wmic path win32_operatingsystem get LocalDateTime /value') do (
set t=%%a
)
set Today=%t:~0,4%%t:~4,2%%t:~6,2%
::创建文件夹,用于存放导出的存储过程等数据库对象
mkdir D:\zslpfrsql\dbback\%Today%
::备份数据库存储过程
sqlplus user/password@ip/dbsid @D:\bat\spooldb\spoolproc.sql D:\zslpfrsql\dbback\%Today%\procedure.sql
::备份数据库视图
sqlplus user/password@ip/dbsid @D:\bat\spooldb\spoolview.sql D:\zslpfrsql\dbback\%Today%\view.sql
::备份数据库函数
sqlplus user/password@ip/dbsid @D:\bat\spooldb\spoolfunc.sql D:\zslpfrsql\dbback\%Today%\func.sql
@echo 数据库对象备份结束
@echo on
set echo off
set pagesize 0
set linesize 500
set long 90000
--去除sql执行返回结果
set termout off
set heading off
set feedback off
col func_text for a200 wrapped word
spool &1
--去除storage等多余参数
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',FALSE);
--输出信息采用缩排或换行格式化
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'PRETTY',true);
--确保每个语句都带分号
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR',true);
select dbms_metadata.get_ddl(u.OBJECT_TYPE,u.OBJECT_NAME) as func_text from
user_objects u
where u.OBJECT_TYPE in('FUNCTION')
and u.OBJECT_NAME LIKE 'ZSLP%';
spool off
quit;
set echo off
set pagesize 0
set linesize 500
set long 90000
/*
忽略sql语句的执行结果
*/
set termout off
/*
不显示列标题
*/
set heading off
/*
去除执行sql的反馈,
如反馈的table created等
*/
set feedback off
/*
将宽度设置为200个字符才换行
*/
col prc_text for a200 wrapped word
spool &1
--去除storage等多余参数
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',FALSE);
--输出信息采用缩排或换行格式化
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'PRETTY',true);
--确保每个语句都带分号
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR',true);
select dbms_metadata.get_ddl(u.OBJECT_TYPE,u.OBJECT_NAME) as prc_text from
user_objects u
where u.OBJECT_TYPE in('PROCEDURE')
and u.OBJECT_NAME LIKE 'ZSLP%';
spool off
quit;
set echo off
set pagesize 0
set linesize 500
set long 90000
set termout off
set heading off
set feedback off
col view_text for a200 wrapped word
spool D:\test.sql
--去除storage等多余参数
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',FALSE);
--输出信息采用缩排或换行格式化
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'PRETTY',true);
--确保每个语句都带分号
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR',true);
select dbms_metadata.get_ddl(u.OBJECT_TYPE,u.OBJECT_NAME) as view_text from
user_objects u
where u.OBJECT_TYPE in('TABLE')
and u.OBJECT_NAME LIKE 'ZSLP%';
spool off
quit;
set echo off
set pagesize 0
set linesize 500
set long 90000
set termout off
set heading off
set feedback off
col view_text for a200 wrapped word
spool &1
--去除storage等多余参数
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',FALSE);
--输出信息采用缩排或换行格式化
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'PRETTY',true);
--确保每个语句都带分号
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR',true);
select dbms_metadata.get_ddl(u.OBJECT_TYPE,u.OBJECT_NAME) as view_text from
user_objects u
where u.OBJECT_TYPE in('VIEW')
and u.OBJECT_NAME LIKE 'ZSLP%';
spool off
quit;