zoukankan      html  css  js  c++  java
  • oracle报表功能

        需求是将指定的批量sql语句执行的结果通过脚本导出成txt或者能用excel打开的文件。

      oracle导出文件可以通过spool命令实现,通过bat脚本登录sqlplus,然后引入sql文件即可,源码如下:

      

    1 chcp 936  --将当前dos命令的编码格式改为gkb
    2 mshta vbscript:msgbox("开始生成报表!",6,"生成报表")(window.close) --输出信息
    3 sqlplus user/name@x.x.x.x:1521/实例名 @xxx.sql --数据库连接配置
    4 mshta vbscript:msgbox("报表生成执行完毕!",6,"生成报表")(window.close)

    xxx.sql:

    其中

    set linesize 9999
    set echo off
    set pagesize 0
    set serveroutput off
    set feedback off
    set newpage none
    set trimout on
    set trimspool on
    set colsep ','
    set wrap off
    set trimspool on
    @./index索引/创建索引.sql
    select '正在生成xxx报表;' from dual;
    set term off --关闭屏幕打印
    spool ./报表新票据/(直贴)买入库存余额查询.csv
    @./sql新票据/(直贴)买入库存余额查询.sql
    spool off
    set term on
    select '正在生成xxx报表;' from dual;
    set term off
    spool ./报表新票据/(转、再贴)买断式买入库存余额查询.csv
    @./sql新票据/(转、再贴)买断式买入库存余额查询.sql
    spool off
    set term on
    select '正在生成xxx报表;' from dual;
    set term off

    附:

    sqlplus常用命令:
    set echo on/off         是否显示脚本中的需要执行的命令
    set feedback on/off     是否显示结果之后返回多少行的提示
    set linesize n          设置一行最多显示多少字符
    set timing on/off       显示sql语句执行多长时间
    set termout on/off      在执行脚本时是否在屏幕上输出结果,如果 spool 到文件可以将其关闭
    set heading on/off      是否显示查询结果的列名
    set pagesize n          设置每页的行数
    set trimspool on/off    在 spool 到文件时是否去除输出结果中行末尾的空白字符,之前的隔行可以用该参数去掉,和该参数对应的是 trimout,后者用于屏幕输出
    set trimout on/off      是否去掉屏幕上输出结果行末尾的空白字符
    休闲玩家 佛系更博
  • 相关阅读:
    postgresql数据迁移
    编译安装或者mysql启动时遇到的错误小记
    安装数据库时提示重启删除 以下注册信息则不用重启
    ​sql2008安装提示报错,.必须使用"角色管理工具"安装或配置Microsoft.net.framework 3.5 sp1
    windows10 安装jdk13.0.1 与 apache-jmeter-5.1.1
    Axure RP 9 获取验证码发送倒计时
    PHP 重定向跳转页面使用post传参
    用 PHPExcel 导入excel表格并展示到前台
    当失去焦点时 验证时分秒 并提示
    iptables 防止syn ddos ping攻击
  • 原文地址:https://www.cnblogs.com/yuyuchen/p/8507976.html
Copyright © 2011-2022 走看看