该实例实现了通过windows定时任务来实现了将数据库中指定数据表数据导出为txt文本格式。其思路是通过可执行的bat文件去调用导出数据脚本,然后再在windows定时任务中调用该bat文件来实现。该示例需要能够运行的sqlplus环境,因此需要安装Oracle客户端等可运行环境。
    实现了将数据库中日志表数据导出到指定文件夹下的.log文件,且该文件的命名方式采用按天来导出的格式(如:C:\HttpLog\20130115.log),当然具体路径根据你的需求可进行自定义设置。如果你不想建立windows定时任务来导出该日志,你也可以定期双击运行logout.bat文件即可实现。
    spool是sqlplus的命令,必须在sqlplus中使用,主要完成以标准输出方式输出sqlplus的命令及执行结果,一般常用户格式化导出oracle表数据。
    对于spool数据的sql语句,最好是自定义格式,以方便程序直接导入 ,示例SQL语句如:
select col1||','||col2||','||col3||','||col4||','||to_number(to_char(col5,'YYYYMMDD')) from table_name;
 
spool命令常用设置:
set colsep','; //-域输出分隔符 
set newp none //设置查询出来的数据分多少页显示,如果需要连续的数据,中间不要出现空行就把newp设置为none,这样输出的数据行都是连续的,中间没有空行之类的 
set echo off; //显示start启动的脚本中的每个sql命令,缺省为on 
set echo on //设置运行命令是是否显示语句 
set feedback on; //设置显示“已选择XX行” 
set feedback off; //回显本次sql命令处理的记录条数,缺省为on即去掉最后的“已经选择10000行”
set heading off; //输出域标题,缺省为on 设置为off就去掉了select结果的字段名,只显示数据 
set pagesize 0; //输出每页行数,缺省为24,为了避免分页,可设定为0。 
set linesize 80; //输出一行字符个数,缺省为80 
set numwidth 12; //输出number类型域长度,缺省为10 
set termout off; //显示脚本中的命令的执行结果,缺省为on 
set trimout on; //去除标准输出每行的拖尾空格,缺省为off 
set trimspool on; //去除重定向(spool)输出每行的拖尾空格,缺省为off 
set serveroutput on; //设置允许显示输出类似dbms_output。 
set timing on; //设置显示“已用时间:XXXX”。 
set autotrace on; //设置允许对执行的sql进行分析。 
set verify off //可以关闭和打开提示确认信息old 1和new 1的显示。
 
1、创建数据库日志表导出为文本文件的脚本tabout.ctl或tabout.sql
注意:该日志导出后在c:\HttpLog目录下
tabout.ctl脚本内容如下:
SET NEWPAGE NONE 
SET HEADING OFF 
SET TERM OFF
SET SPACE 0 
SET PAGESIZE 0 
SET TRIMOUT ON 
SET TRIMSPOOL ON
SET LINESIZE 2500
set feedback off
set echo off
SET VERIFY OFF
column v_date new_value filename; 
select to_char(sysdate,'yyyymmdd') || '.log' v_date from dual; 
spool ..\HttpLog\&&filename              
select id||','||name from orcluser.test; 
spool off;
exit;
 
2、创建调用该脚本的logout.bat文件
logout.bat内容如下:
mkdir ..\HttpLog\
C:\oracle\ora92\bin\sqlplus orcluser/orcl @C:Oracleout.ctl
 
说明:该bat文件直接在当前目录下创建名为HttpLog的文件夹,以便tabout.ctl脚本输出的文件存放到该目录下。其通过调用Oracle中sqlplus可执行文件来执行tabout.ctl脚本,所以该文件直接双击即可运行,无需其他操作。
 
3、通过windows定时任务实现自动定期执行
    “在控制面板——任务计划——添加任务计划”中建立定期将数据库中日志表数据导出为文本格式(如:你可以根据需求设置为每天对日志表数据进行导出)。根据你当前对日志文件路径的存储需求,修改上面两个脚本中的存储路径,在windows定时任务直接调用logout.bat文件执行即可。

定时导出Oracle数据表到文本文件的方法的更多相关文章

  1. Oracle数据表转换为Shapefile(一)

    严格来说,文章标题中的“转换”并不完全合适.本文的主要内容是基于Oracle数据表的数据来生产出Shapefile文件.进行该工作的一个前提条件是:Oracle数据表中包含坐标数值字段,一般来说就是x ...

  2. navicat如何导出mysql数据表结构

    我们在创建数据库时会对字段进行设置,比如类型.长度等,如果字段多的话一个个设置非常麻烦,可以从其他地方已有的表导入数据表结构,怎么操作呢?我们拿navicat导出mysql数据表结构为例: 1.点击“ ...

  3. Oracle数据表转换为Shapefile(二)

    在上一篇博文<Oracle数据表转换为Shapefile(一)>中详细描述了一种基于Oracle数据表生产Shapefile的技术方法,本文同样以详细图解的方式描述一种更便捷的方法来完成同 ...

  4. C# - VS2019 通过DataGridView实现对Oracle数据表的增删改查

    前言 通过VS2019建立WinFrm应用程序,搭建桌面程序后,通过封装数据库操作OracleHelper类和业务逻辑操作OracleSQL类,进而通过DataGridView实现对Oracle数据表 ...

  5. matlab学习笔记4--导入和导出电子数据表

    一起来学matlab-matlab学习笔记4 数据导入和导出_3 导入和导出电子数据表 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用> ...

  6. flask使用tablib导出excel数据表

    在网页中常常有导出数据的需求,尤其是一下管理类平台.在flask中要导出excel数据表,通常可以使用xlwt库,创建文件并逐行写入数据,但是使用起来总是感觉很麻烦.tablib库相对操作更加方便. ...

  7. Oracle中新建数据表的两种方法

    首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...

  8. 如何利用Oracle外部表导入文本文件的数据

    同事最近在忙数据一致性比对工作,需要对不同文本文件中的数据进行比对,有的文件较大,记录较多,如果用普通的文本编辑器打开的话,很显然,会很卡,甚至打不开. 基于此,可将该文本文件的数据导入到数据库中,在 ...

  9. 快速导入导出Oracle数据demo(sqlldr、UTL_FILE)

    本文演示快速sqlldr导入.UTL_FILE导出Oracle表数据实例 表结构如下,演示数据约112万,可自行准备. create table MemberPointDemo ( MEMBERID ...

随机推荐

  1. Embedded之memory type

    1 Types of memory 2 Characteristics

  2. Maven,预加载资源文件

    预加载资源文件需要先启用功能: <build> <resources> <resource> <directory>src/main/resources ...

  3. *nix高手站点

    http://linux.die.net/man/7/ip http://www.neuma.com/  cm+企业开发生命周期管理 http://book.2cto.com/201307/27394 ...

  4. 移动端rem布局

    手机页面——分辨率特别乱: 1.定宽320px——优点:简单,缺点:不能适应 2.百分比——优点:能适应各种分辨率,缺点:太麻烦 3.rem——优点:方便.适应各种分辨率(首先定义一个“根大小”htm ...

  5. LINQ标准查询操作符(五)

    十二.相等操作符 如果两个序列的对应元素相等且这两个序列具有相同数量的元素,则视这两个序列相等. SequenceEqual方法通过并行地枚举两个数据源并比较相应元素来判断两个序列是否相等.如果两个序 ...

  6. 从一个简单的Java单例示例谈谈并发

    一个简单的单例示例 单例模式可能是大家经常接触和使用的一个设计模式,你可能会这么写 public class UnsafeLazyInitiallization { private static Un ...

  7. python svn

    svn 0.3.36 Downloads ↓ Intuitive Subversion wrapper. Introduction svn is a simple Subversion library ...

  8. 如何检查oracle的归档空间是否满了?

    如何检查oracle的归档空间是否满了? 关于如何检查归档空间是否慢了,大多数人会去先检查放归档的目录的磁盘空间是否满了,通过该归档目录空余情况来判断归档空间是否满了,但我觉得这个方法不一定代表实际情 ...

  9. react native listview 一个有用的属性,用作两列布局

    contentContainerStyle:设置listview包裹内容的属性 <ListView contentContainerStyle={{flexDirection:'row',fle ...

  10. MVC的System.Web.Mvc.ViewPage小结

    Inherits="System.Web.Mvc.ViewPage<dynamic>这一句最好是自己手动修改,如果是维护用户数据,用户对象名是User,改成Inherits=&q ...