sqlplus SPOOL 导出网页文件

2024-04-04 04:18

本文主要是介绍sqlplus SPOOL 导出网页文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

在用spool 导出数据的时候,如果直接导成excel, 那么在格式上比较路,比如一个字段占了2列,这个还是好的,有的占了办列,这个格式看上去还是很麻烦的,所以我们可以使用sqlplus markup 命令, 直接导出成网页形式的,这样在格式上要整齐很多。

 

关于sqlplus 和 spool,可以参考我的2blog

Oracle sqlplus 常用命令总结

http://www.cndba.cn/Dave/article/1210

Linux 平台下 Spool导出数据并发送到邮箱

http://www.cndba.cn/Dave/article/1202

语法:

SET MARK[UP] HTML [ON | OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON | OFF}] [SPOOL {ON | OFF}] [PRE[FORMAT] {ON | OFF}]

SET MARKUP指明SQL*Plus输出HTML编码格式,必须使用SET MARKUP HTML ON SPOOL ONSQL*Plus SPOOL命令去创建一个spool文件,并且以HTML格式输出。

SET MARKUP习惯称作SQLPLUS -MARKUP命令。

使用SQLPLUS -MARKUP HTML ON或者SQLPLUS -MARKUP HTML ON SPOOL ON 产生标准的web页,SQL*Plus 自动生成完整的用<HTML><BODY>标签封装HTML网页。 当设定SPOOL OFF或者退出SQL*Plus是,spool文件中的HTML标签就闭合。

SQLPLUS -MARKUP和一些其他有用的静默和限制命令一起用。

使用MARKUP HTML ON生成HTML输出,无论是<PRE>标签还是一个HTML表格。输出一个表格使用标准的HTML  <TABLE>, <TR> 和 <TD> 标签,自动闭合从一个查询返回结果集的行和列。当设置HTML ON时,默认产生标准HTML表格。通过设置PREFORMAT ON产生预格式化HTML <PRE> 标签。

SHOW MARKUP命令查看MARKUP操作当前状态:

SQL> show markup

markup HTML OFF HEAD "<style type='text/css'> body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;}

HTML [ON|OFF]

指定是否生成HTML格式,ON生成,OFF不生成,默认是OFF

HEAD text

指定HTMLHEAD标签中的内容,默认情况下,文本包括级联样式和标题。

BODY text

指定HTMLBODY标签属性

TABLE text

设置<TABLE>标签的属性,如BORDER, CELLPADDING, CELLSPACINGWIDTH.。默认情况下,<TABLE> WIDTH属性设置为90%BORDER属性设置为1

ENTMAP {ON|OFF}

指定在SQL * Plus中是否用HTML字符实体如<, >, " and &等替换特殊字符<, >, " and & 。默认设置是ON。例如:

SQL> set markup html on entmap off

SQL> 

<br>

SQL> set markup html on entmap on

<br>

SQL> 

<br>

SQL> 

SPOOL {ON|OFF}

指定是否在SQL*Plus生成HTML标签<HTML> <BODY>, </BODY> </HTML>。默认是OFF

注:

这是一个后台打印操作,只有在生成SPOOL文件生效,在屏幕上并不生效。

PRE[FORMAT] {ON|OFF}

指定SQL*Plus生成HTML时输出<PRE>标签还是HTML表格,默认是OFF,因此默认输出是写HTML表格。

在生成HTML格式时要设置一些其他操作,列出如下:

SET ECHO {ON|OFF}

是否显示脚本中正在执行的SQL语句。

SET FEED[BACK] {6|n|ON|OFF} 

.是否显示当前sql语句查询或修改的行数。默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数。

SET HEA[DING] {ON|OFF} 

是否显示列标题。当SET HEADING OFF时,在每页的上面不显示列标题,而是以空白行代替。

SET LIN[ESIZE] {80|n} 

设置一行可以容纳的字符数。如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。

SET NEWP[AGE] {1|n|NONE} 

设置页与页之间的分隔。

SET NEWPAGE 0 时,会在每页的开头有一个小的黑方框。 

SET NEWPAGE n 时,会在页和页之间隔着n个空行。 

SET NEWPAGE NONE 时,会在页和页之间没有任何间隔。 

SET NULL text 

显示时,用text值代替NULL值 

SET PAGES[IZE] {24|n} 

设置一页有多少行数,如果设为0,则所有的输出内容为一页并且不显示列标题

SET WRA[P] {ON|OFF} 

SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句,设置SET WRAP ON时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。 

SET TERM[OUT] {ON|OFF} 

是否在屏幕上显示输出的内容,  主要用与SPOOL结合使用。设置SET TERMOUT OFF,输出的内容只保存在输出文件中,不会显示在屏幕上,提高了SPOOL输出速度。

SET TRIMS[OUT] {ON|OFF}  

SPOOL输出中每行后面多余的空格去掉

示例:

##################################################################### 

## get000001Info.sh          ## 

## create by Tianlesoftware    ##

##################################################################### 

#!/bin/ksh 

EDITOR=vi; export EDITOR 

PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin:/usr/ccs/bin:/bin:/usr/bin:/usr/sbin:/sbin:/usr/openwin/bin:/opt/bin:.; 

export PATH 

cd /u03/scripts

sqlplus -s user/pwd@sid <<EOF 

set numwidth 20 

set heading off

Set pagesize 0

Set term off

Set feedback off

set linesize 99999

set trimspool off

set term off verify off feedback off pagesize 9999 

set markup html on entmap ON spool on preformat off

spool 000001info.xls

select  '信息编号', '收派员','点部' ,'操作员','时间','催派运单号','类型','信息内容' from dual

union all

SELECT t.infoid,t.empid,r.deptid,t.operator,to_char(t.sendtime,'yyyy-mm-dd hh24:mi:ss'), to_char

(t.billno),t.infotype,t.msg FROM otherinfo t,employee r WHERE   t.empid = r.empid AND t.sendtime >=    

 trunc  (( TRUNC ((SYSDATE - 1) , 'dd') + 15 / 48 ),'mi'

             )    

             and t.sendtime <   TRUNC ((SYSDATE ) , 'dd') AND t.operator = 000001;

spool off 

exit

EOF

#sendMail

uuencode 000001info.xls 000001info.xls|mailx -s "000001每日内部通讯,如有疑问请联系IT" Dave@tianlesoftware.com


------------------------------------------------------------------------------
QQ: 492913789
Email: ahdba@qq.com
Blog: http://www.cndba.cn/dave
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满);   DBA2 群:62697977(满)   DBA3 群:62697850(满)  
DBA 超级群:63306533(满);  DBA4 群: 83829929  DBA5群: 142216823   
DBA6 群:158654907  聊天 群:40132017   聊天2群:69087192
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

这篇关于sqlplus SPOOL 导出网页文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/874774

相关文章

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总