ITPub博客

首页 > 数据库 > Oracle > [20211125]sqlplus生成html格式.txt

[20211125]sqlplus生成html格式.txt

原创 Oracle 作者:lfree 时间:2021-11-25 10:18:47 0 删除 编辑

[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
-- 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 -

--//在客户端浏览器上执行:


--//就可以查询输出内容了。

5.简单总结:
1. @ htmlrun "select * from dept"
2. 先执行sql语句,然后运行 html ,html2
3. 另外一个命令是hs ,参数1是包含sql语句的文件。




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2844032/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    3081
  • 访问量
    6806366