Oracle之sqlplus输出到html

          最近由于工作原因,需要把sqlplus里面SQL结果输出到html里面去,本来想用PLSQL Developer这个工具的,但是想到不是每个环境都是可以安装的,所以就研究了一下。

       通过研究发现原来oracle是有这方面介绍的。在oracle文档中

       SQL*Plus User's Guide and Reference=》7 Generating HTML Reports from SQL*Plus这章就有介绍

       文档中有个例子:

        

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

          在sqlplus里面我们输入help set就能看到相关语法

          

         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。例如:
         SPOOL {ON|OFF}:
            指定是否在SQL*Plus生成HTML标签<HTML> 和<BODY>, </BODY> 和</HTML>。默认是OFF。
         PRE[FORMAT] {ON|OFF}
             指定SQL*Plus生成HTML时输出<PRE>标签还是HTML表格,默认是OFF,因此默认输出是写HTML表格。

        上面的属性我们常用的也就那几个,下面我给大家做一个我自己的例子,这个例子可以接受控制台的参数,也可以接受sql运行结果当参数。 

 

SET markup html ON spool ON pre off entmap off

set term off
set heading on
set verify off
set feedback off

set linesize 2000
set pagesize 30000
set long 999999999
set longchunksize 999999


column id format a30
column super_id format a30
column levels format 9999999999

column table_name format a30
column owner format a30


set term on
prompt "input schema:" --从控制台接受变量值
define S_SCHEMA=&SCHEMA
set term off

column dbid new_value spool_dbid --列dbid值给变量spool_dbid
column inst_num new_value spool_inst_num
select dbid from v$database where rownum = 1; --给dbid赋值
select instance_number as inst_num from v$instance where rownum = 1;
column spoolfile_name new_value spoolfile
select 'spool_'||(select name from v$database where rownum=1) ||'_'|| (select instance_name from v$instance where rownum=1)
||'_'||to_char(sysdate,'yy-mm-dd_hh24.mi')||'_static' as spoolfile_name from dual;
spool &&spoolfile..html



prompt <p>版本

select  t.id,t.super_id,t.levels from T1 t;

prompt <p>整个用户有多大 单位GB
select sum(bytes)/1024 /1024 /1024 "GB"
  from dba_segments
 where owner = '&S_SCHEMA';

prompt <p>测试

select  t.id,t.super_id,t.levels from T1 t;

spool off;



         

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值