Oracle之sqlplus输出到html

来源:互联网 发布:淘宝卖家批量发货 编辑:程序博客网 时间:2024/06/06 20:39

          最近由于工作原因,需要把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 offset term offset heading onset verify offset feedback offset linesize 2000set pagesize 30000set long 999999999set longchunksize 999999column id format a30column super_id format a30column levels format 9999999999column table_name format a30column owner format a30set term onprompt "input schema:" --从控制台接受变量值define S_SCHEMA=&SCHEMAset term offcolumn dbid new_value spool_dbid --列dbid值给变量spool_dbidcolumn inst_num new_value spool_inst_numselect 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 spoolfileselect '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..htmlprompt <p>版本select  t.id,t.super_id,t.levels from T1 t;prompt <p>整个用户有多大 单位GBselect 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;



         

0 0
原创粉丝点击