[20211125]sqlplus生成html格式.txt

lfree發表於2021-11-25

[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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章