sqlplus spool 到动态日志文件名_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2628 | 回复: 0   主题: sqlplus spool 到动态日志文件名        下一篇 
kyle
注册用户
等级:新兵
经验:31
发帖:58
精华:0
注册:2011-12-6
状态:离线
发送短消息息给kyle 加好友    发送短消息息给kyle 发消息
发表于: IP:您无权察看 2015-7-21 10:12:01 | [全部帖] [楼主帖] 楼主

通过sqlplus的spool功能我们将数据库日常运维的结果输出到日志文件,而有时候则需要定时输出,为避免日志文件名的重复,我们可以将输出的日志文件名采用动态命名方式来实现。

1、生成动态日志文件的脚本  

robin@SZDB:~> more dynamic_logfile_name.sql
--+ ================================================================+
--  Filename:dynamic_logfile_name.sql
--  Desc:
--          This is only a sapmle to generate dynamic log file name
--+ ================================================================+
SET TERMOUT OFF ECHO OFF VERIFY OFF
SET FEEDBACK OFF
VARIABLE dt VARCHAR2(13);
COL dt FORMAT a15
COL report_name FORMAT a35
BEGIN
SELECT TO_CHAR (SYSDATE, 'yyyymmdd_hh24mi') INTO :dt FROM DUAL;
END;
/
PRINT dt;
COL report_name NEW_VALUE rpt_name
SELECT'dynamic_logfile_'   :dt   '.log'AS report_name FROM DUAL;
PROMPT "variable rpt_name value is &rpt_name"
SPOOL &rpt_name
ALTER SESSION SET nls_date_format='yyyymmdd hh24:mi:ss';
SELECT SYSDATE FROM DUAL;
SPOOL OFF;
SET TERMOUT ON  ECHO ON VERIFY ON;
SET FEEDBACK ON;
UNDEFINE rpt_name
EXIT;


2、测试脚本

robin@SZDB:~> sqlplus -S scott/tiger@cnmmbo @dynamic_logfile_name.sql
robin@SZDB:~> date
Fri Mar 15 11:13:04 CST 2013
robin@SZDB:~> sqlplus -S scott/tiger@cnmmbo @dynamic_logfile_name.sql
robin@SZDB:~> ls -hltr dyna*.log
-rw-r--r-- 1 robin oinstall  45 2013-03-15 11:11 dynamic_logfile_20130315_1111.log
-rw-r--r-- 1 robin oinstall  45 2013-03-15 11:13 dynamic_logfile_20130315_1113.log


3、说明
a、在上面的脚本中主要通过定义变量variable dt来存储系统时间日期用于动态日志文件的后半部分
b、变量使用:dt方式由sql查询进行赋值
c、begin end 块不可省略,否则,上面赋值不成功
d、一些提示信息可以自行移除,如print dt,prompt部分等

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论