在sqlplus中将数据导出HTML与EXCEL文件

本文介绍了如何在sqlplus中使用SET MARKUP HTML ON SPOOL ON命令将数据导出为HTML和Excel文件。通过示例脚本展示了设置各种选项,如ECHO、FEEDBACK、HEADING等,以及如何生成和查看HTML标记。最后,提供了生成HTML和Excel文件的示例。

在sqlplus中将数据导出HTML与EXCEL文件

语法:
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 ON和SQL*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
指定HTML中HEAD标签中的内容,默认情况下,文本包括级联样式和标题。

BODY text
指定HTML中BODY标签属性

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

ENTMAP {ON|OFF}
指定在SQL * Plus中是否用HTML字符实体如&lt;, &gt;, &quot; and &amp;等替换特殊字符<, >, " and & 。默认设置是ON。例如:
SQL> set markup html on entmap off
SQL>
<br>
SQL> set markup html on entmap on
<br>
SQL&gt;
<br>
SQL&gt;

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输出中每行后面多余的空格去掉

SET MARKUP HTML ON SPOOL ON
SET ECHO OFF
SET TERMOUT OFF
SET TRIMOUT OFF
SET FEEDBACK OFF
SPOOL d:/employee.html
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMP_DETAILS_VIEW
WHERE SALARY>12000;
SPOOL OFF
EXIT

在命令行或终端执行脚本:
sqlplus hr/hr @d:/employee.sql
则生成html格式文件,如图:
 htmljpg
把employee.sql脚本中SPOOL d:/employee.html更改为spool tables.xls,生成excel文档,如图:
       xlsjpg
其实这个xls文件格式还是HTML格式的,只是excel可以打开HTML格式的文件。当然这并不影响我们所需要的,比如要生成cvs文件,可以用excel另存即可。

 

结束

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值