您现在的位置: 爱51代码网 >> 范文 >> 文章正文
sqlplus spool 到动态日志文件名

sqlplus spool 到动态日志文件名
  通过sqlplus的spool功能我们将数据库日常运维的结果输出到日志文件,而有时候则需要定时输出,为避免日志文件名的重复,我们可以将输出的日志文件名采用动态命名方式来实现。本文则是针对这个问题给出一个示例,供大家参考。

 

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

[sql] view plaincopyprint?
:~> more dynamic_logfile_name.sql 毕业论文 
02.--+ ================================================================+   
03.--| Filename:dynamic_logfile_name.sql                               |  
04.--| Desc:                                                           |  
05.--|         This is only a sapmle to generate dynamic log file name |  
06.--| Author: Robinson                                                |    
                      |  
08.--+ ================================================================+  
09.SET TERMOUT OFF ECHO OFF VERIFY OFF 
10.SET FEEDBACK OFF 
11.VARIABLE dt VARCHAR2(13); 
12.COL dt FORMAT a15 
13.COL report_name FORMAT a35 
14. 
15.BEGIN 
16.   SELECT TO_CHAR (SYSDATE, 'yyyymmdd_hh24mi') INTO :dt FROM DUAL; 
17.END; 
18./ 
19. 
20.PRINT dt; 
21.COL report_name NEW_VALUE rpt_name 
22. 
23.SELECT 'dynamic_logfile_' || :dt || '.log' AS report_name FROM DUAL; 
24. 
25.PROMPT "variable rpt_name value is &rpt_name" 
26.SPOOL &rpt_name 
27.ALTER SESSION SET nls_date_format='yyyymmdd hh24:mi:ss'; 
28. 
29.SELECT SYSDATE FROM DUAL; 
30. 
31.SPOOL OFF; 
32.SET TERMOUT ON  ECHO ON VERIFY ON; 
33.SET FEEDBACK ON; 
34.UNDEFINE rpt_name 
35.EXIT; 
robin@SZDB:~> more dynamic_logfile_name.sql
--+ ================================================================+
--| Filename:dynamic_logfile_name.sql                               |
--| Desc:                                                           |
--|         This is only a sapmle to generate dynamic log file name |
--| Author: Robinson                                                |
--| Blog: http://blog.csdn.net.robinson_0612                        |
--+ ================================================================+
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、测试脚本

[sql] view plaincopyprint?
01.robin@SZDB:~> sqlplus -S scott/tiger@cnmmbo @dynamic_logfile_name.sql 
02.robin@SZDB:~> date 
03.Fri Mar 15 11:13:04 CST 2013 
04.robin@SZDB:~> sqlplus -S scott/tiger@cnmmbo @dynamic_logfile_name.sql 
05.robin@SZDB:~> ls -hltr dyna*.log 
06.-rw-r--r-- 1 robin oinstall  45 2013-03-15 11:11 dynamic_logfile_20130315_1111.log  
07.-rw-r--r-- 1 robin oinstall  45 2013-03-15 11:13 dynamic_logfile_20130315_1113.log 
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、有关sqlplus命令的具体用法请参考:SQL*Plus User's Guide and Reference
b、在上面的脚本中主要通过定义变量variable dt来存储系统时间日期用于动态日志文件的后半部分
c、变量使用:dt方式由sql查询进行赋值
d、begin end 块不可省略,否则,上面赋值不成功
e、一些提示信息可以自行移除,如print dt,prompt部分等

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    mysql主从同步延迟方案解决的学习
    青岛科学六年级下册教材分析
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    青少年吸烟心理探析
    保险受益人制度相关问题的探讨
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    保险受益人制度相关问题的探讨
    初中生地理读图能力培养的研究
    搞笑生日祝福
    ios开发之UIButton 点击两张
    android蓝牙串口连接代码
    Preview of Qt 5 for Androi
    VS2010 cocos2d-x 工程配置 
    windows正在配置Windows Ins
    班主任的工作技能
    暖通空调施工图存在的问题及
    多媒体在政治教学中的应用
    浅议散文的质与形
    wince6.0拨号错误 错误号666
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |