sqlplus spool 到动态日志文件名
来源:互联网 发布:java cmd命令 编辑:程序博客网 时间:2024/05/17 00:16
通过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 |
- --| 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;
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 OFFSET FEEDBACK OFFVARIABLE dt VARCHAR2(13);COL dt FORMAT a15COL report_name FORMAT a35BEGIN SELECT TO_CHAR (SYSDATE, 'yyyymmdd_hh24mi') INTO :dt FROM DUAL;END;/PRINT dt;COL report_name NEW_VALUE rpt_nameSELECT 'dynamic_logfile_' || :dt || '.log' AS report_name FROM DUAL;PROMPT "variable rpt_name value is &rpt_name"SPOOL &rpt_nameALTER 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_nameEXIT;
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
robin@SZDB:~> sqlplus -S scott/tiger@cnmmbo @dynamic_logfile_name.sqlrobin@SZDB:~> dateFri Mar 15 11:13:04 CST 2013robin@SZDB:~> sqlplus -S scott/tiger@cnmmbo @dynamic_logfile_name.sqlrobin@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部分等
- sqlplus spool 到动态日志文件名
- sqlplus spool 到动态日志文件名
- sqlplus 动态生成spool 后文件名
- spool sqlplus输出结果到文件
- sqlplus spool
- sqlplus中利用spool生成带日期的文件名
- sqlplus中利用spool生成带日期的文件名
- sqlplus中利用spool生成带日期的文件名
- sqlplus 常用命令 、、spool
- ORACLE SQLPLUS SPOOL
- sqlplus spool 文件
- sqlplus的spool命令
- sqlplus spool 使用
- shell oracle(sqlplus spool)
- sqlplus SPOOL 导出网页文件
- SQLPLUS SPOOL命令使用详解
- sqlplus SPOOL 导出网页文件
- sqlplus spool中的格式调整
- Varnish –为你的网站加速
- 项目经理杂谈(下)
- 一个简单的猜数字游戏
- CFBundleVersion和CFBundleShortVersionString
- 什么是I帧,P帧,B帧
- sqlplus spool 到动态日志文件名
- java.util.Calendar 类
- heap_sort_io
- 华为:通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串
- 一个关于DIV+CSS布局技术不错的教程
- Windows网络编程
- Android常见错误
- 禅语小记
- Jade模板引擎入门教程