[20211125]sqlplus生成html格式.txt
--//这几天都在看tpt脚本,看了一些生成html格式的脚本。
--//感觉对方搞得有点复杂。
hof.sql --//html off
hoff.sql --//html off
hon.sql --//html on
hr.sql --//htmlrun
hs.sql --//html select @hs ver1
htmlrun.sql --//htmlrun
hsel.sql --//htmlrun
htmloff.sql --//html off
htmlon.sql --//html on
html2.sql --//html 前一次执行的语句. 输出tpt_tmp目录. windows版本
html3.sql --//html 前一次执行的语句. 输出到本地目录.
html.sql --//html 前一次执行的语句. 输出tpt_tmp目录.
html_.sql
html_settings.sql
htmloff.sql
htmlon.sql
htmlrun.sql
htmlset2.sql
htmlset.sql
--//我大概看了一遍,里面有一些对于windows环境,一些对于linux环境。简单一点,我仅仅需要学习一种就ok了。
--//仅仅工作需要,因为sqlplus受限显示大小,格式化等因素,有时候在html格式跟好看一些。
--//而且我本机并没有安装X-window环境,即使在linux下启动firefox,windows客户端也无法正常显示。
--//通过例子说明。
1.环境:
SCOTT@book> @ ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
2.测试1:
--//我仅仅测试htmlrun.sql,html3.sql.其它不测试了。
--//我定义_start=vim
SCOTT@book> define _start
DEFINE _START = "vim" (CHAR)
$ cat htmlrun.sql
-- Copyright 2018 Tanel Poder. All rights reserved. More info at http://tanelpoder.com
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions.
set termout off
set markup HTML ON HEAD "<style type='text/css'> body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} p {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} table,tr,td {font:10pt Arial,Helvetica,sans-serif; color:Black; background:#f7f7e7; padding:0px 0px 0px 0px; margin:0px 0px 0px 0px; white-space:nowrap;} th {font:bold 10pt Arial,Helvetica,sans-serif; color:#336699; background:#cccc99; padding:0px 0px 0px 0px;} h1 {font:16pt Arial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; border-bottom:1px solid #cccc99; margin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;} h2 {font:bold 10pt Arial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; margin-top:4pt; margin-bottom:0pt;} a {font:9pt Arial,Helvetica,sans-serif; color:#663300; background:#ffffff; margin-top:0pt; margin-bottom:0pt; vertical-align:top;}</style><title>&1</title>" BODY "" TABLE "border='1' align='center' summary='Script output'" SPOOL ON ENTMAP ON PREFORMAT OFF
def _htmlrun_spoolfile=&_tpt_tempdir/htmlrun_&_tpt_tempfile..html
spool &_htmlrun_spoolfile
prompt &1
clear buffer
1 &1
/
spool off
set markup html off spool off
host links &_htmlrun_spoolfile
--host &_start &_htmlrun_spoolfile
set termout on
--//注:我直接修改links打开。如果以下遇到类似情况也可以相似修改,忽略说明。
@ htmlrun "select * from dept"
--//这样就可以使用links浏览文件内容。确定使用参数1作为sql语句,语句太长不合适。他还提供一种生成前一次执行的sql语句的形式。
3.测试2.
--//首先执行命令:
select * from all_objects where rownum<=4;
--//再次执行html就可以浏览了。
SCOTT@book> html --//html 前一次执行的语句. 输出tpt_tmp目录.
SCOTT@book> @ html2 --//html 前一次执行的语句. 输出tpt_tmp目录
SCOTT@book> @ html3 --//html 前一次执行的语句. 输出到本地目录.
4.浏览问题:
--//毕竟使用links也许也是不方便,可以通过一个简单命令临时启动http。
--//我个人的工作习惯是建立一个别名http,当然要安装python:
$ alias http
alias http='python -m SimpleHTTPServer 8000'
--//移动到指定目录,执行:
$ http
Serving HTTP on 0.0.0.0 port 8000 ...
xxx.com - - [25/Nov/2021 10:11:34] "GET / HTTP/1.1" 200 -
xxx.com - - [25/Nov/2021 10:11:38] "GET /html_book-20211125-093358.html HTTP/1.1" 200 -
--//在客户端浏览器上执行:
http://server_ip:8000/html_book-20211125-093358.html
--//就可以查询输出内容了。
5.简单总结:
1. @ htmlrun "select * from dept"
2. 先执行sql语句,然后运行 html ,html2
3. 另外一个命令是hs ,参数1是包含sql语句的文件。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2844032/ ,如需转载,请注明出处,否则将追究法律责任。