• linux 定时导出sql查询结果文件


    如果想在服务器端生成sql查询结果的txt文件。

    大体思路就是:

    1.创建一个到处txt文件的sql脚本。

    set ARRAYSIZE 50 --从数据库往客户端一次发送记录数
    set linesize 100 --一行的字符数
    SET PAGESIZE 0 --设置不分页
    set timing off --关闭显示sql执行时间
    set heading off --不显示每行的列名
    set feedback off --回显本次sql命令处理的记录条数,缺省为on
    SET TRIMOUT ON --去除标准输出每行的拖尾空格,缺省为off
    set trimspool on --去除重定向(spool)输出每行的拖尾空格,缺省为off
    set termout off --显示脚本中的命令的执行结果,缺省为on
    
    define r_filename=&1 --定义导出文件路径和文件名
    spool &r_filename;
    select empno||','||ename from emp;
    spool off;

    2.创建一个shell脚本调用写好的sql脚本。

    #! /bin/bash
    
    START_TIME=`date +%Y%m%d%H%M%S`
    TIMESTAMP=`date +%Y%m%d%H%M%S`
    
    DB_USER="apps/apps@orcl.net"
    FILE_PATH=$HOME/temp
    FILE_NAME=tt$TIMESTAMP.txt
    SQL_FILE=$HOME/sql/tt.sql
    
    echo 'Start time is: '$TIMESTAMP
    echo 'SQL file is: '$SQL_FILE
    echo 'OUT file is: '$FILE_NAME
    echo 'File full path is: '$FILE_PATH/$FILE_NAME
    
    sqlplus -S $DB_USER @$SQL_FILE $FILE_PATH/$FILE_NAME
    
    if [ -r $FILE_PATH/$FILE_NAME ]; then
       echo "$FILE_NAME create success"
    else
       echo "$FILE_NAME create fail"
       exit 1
    fi
    
    END_TIME=`date +%Y%m%d%H%M%S`
    echo 'End time is: '$END_TIME

    3.可以创建一个linux的定时任务,定时调用如上shell脚本。

      1)先创建一个定时任务列表的文件,oraclecron

      

    #分 时 日 月 星期 命令完全路径
    #这条命令表示每个15分钟调用一次/home/oracle/myShell/ttt
    15,30,45,0 * * * * /home/oracle/myShell/ttt

      2)把这个定时任务添加到系统crontab列表

    crontab oraclecron

      3)可以用如下命令查看系统crontab任务,如果看到你在oraclecron文件中添加的任务就OK了。

    crontab -l

    4.从定时任务添加成功后,每逢整刻钟系统就会掉用 2 中创建的shell脚本,2 的shell脚本调用 1 的sql脚本。

      最终生成一个文件在oracle服务器上。

  • 相关阅读:
    使用火炬之光资源(转)
    (转)Visual Leak Detector (VLD)使用
    (转)ofusion 导出注意事项
    OgreMax 导出(转)
    (转)C++ 内存池 C++ Memory Pool 翻译版
    Maven教程初级篇01: 简介
    浅谈JSON 数据源格式
    面向连接的Socket Server的简单实现
    oracle杀死死锁进程
    重构——让程序员快乐的工作
  • 原文地址:https://www.cnblogs.com/wolil/p/5534360.html
Copyright © 2020-2023  润新知