科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用Oracle的SQL*Plus工具创建HTML页面

用Oracle的SQL*Plus工具创建HTML页面

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  Oracle的SQL*Plus工具有一些比较有趣的选项,合理的使用,能够给我们意想不到的后果。其中有一个”-M”选项能够创建用来创建HTML报表,在实际应用中很有用处。

作者:中国IT实验室 来源:中国IT实验室 2007年10月1日

关键字: SQL 数据库 ORACLE

  • 评论
  • 分享微博
  • 分享邮件

  Oracle的SQL*Plus工具有一些比较有趣的选项,合理的使用,能够给我们意想不到的后果。其中有一个”-M”选项能够创建用来创建HTML报表,在实际应用中很有用处。我们先来看看SQL*Plus(Oracle 8i)的一些选项:
  
  C:\>SQLPLUS -
  
  用法: SQLPLUS [ [<option>] [<logon>] [<start>] ]
  
  其中 <option> ::= - | -? | [ [-M <o>] [-R <n>] [-S] ]
  
  <登录> ::= <用户名>[/<口令>][@<connect_string>] | / | /NOLOG
  
  <启动> : : = @<文件名>[.<ext>] [<参数> ...]
  
  "-"显示使用语法
  
  "-?"显示 SQL*Plus 版本标帜
  
  "-M <o>" 使用 HTML 标志选项 <o>
  
  "-R <n>" uses restricted mode <n>
  
  "-S" uses silent mode
  
  ”-M”选项指定在输出的时侯使用HTML标记来输出数据,用以代替普通的文本。
  
  其中”-M”选项的语法如下:
  
  [-M[ARKUP] "HTML [ON|OFF] [HEAD text] [BODY text]
  
  [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]"
  
  如果我们在实际应用中,要对公司的某个Table进行每个月的报表HTML化,用SQL*Plus的这个特性很容易做到。
  
  举例如下:
  
  我们准备对Scott模式下的DEPT表进行处理。DEPT表内容:
  
  SQL> SELECT * FROM dept;
  
  DEPTNO DNAME     LOC
  
  ---------- -------------- -------------
  
  10 ACCOUNTING   NEW YORK
  
  20 RESEARCH    DALLAS
  
  30 SALES     CHICAGO
  
  40 OPERATIONS   BOSTON
  
  在系统命令行下输出HTML文件:
  
  将下面几行语句存到一个.sql脚本中(比如说q.sql):
  
  SET ECHO OFF
  
  SET FEEDBACK OFF
  
  SELECT * FROM dept;
  
  SET ECHO ON
  
  SET FEEDBACK ON
  
  exit
  
  然后在命令行下调用如下命令:
  
  C:\> sqlplus -s -m "HTML ON HEAD DEPT表格之内容" Scott/tiger @c:\q.sql>Dept.html
  
  对这条命令简单的解释一下:其中”-s”表示silent模式,”-m”表示启用HTML Markup选项,”HEAD DEPT表格之内容”可以用来定制一个简单的标题。然后命令中跟的是数据库用户名字和密码,执行脚本,重定向到Dept.html中。
  
  输出Dept.html有如下内容(空白处已经截去):
  
  
 

  在SQL*Plus下输出文件
  
  在SQL*Plus中可以用SET MARKUP命令来做到。
  
  SET MARKUP
  
  用法: SET MARKUP HTML [ON|OFF] [HEAD text] [BODY text]
  
  [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]
  
  把下面的内存存为一个.sql脚本(比如说C:\q.sql):
  
  SET ECHO OFF
  SET FEEDBACK OFF
  SET MARKUP HTML ON SPOOL ON
  SPOOL c:\Dept.html
  SELECT * FROM dept;
  SPOOL OFF
  SET MARKUP HTML OFF
  SET ECHO ON
  
  SET FEEDBACK ON
  
  在SQL*Plus中调用,即可创建内容在C:中创建了名为Dept.html的HTML页面,如下图所示:
  
  

  附:HTML页面输出样例源文件内容
  
  <html>
  
  <head>
  
  DEPT表格之内容
  
  <meta name="generator" content="SQL*Plus 8.1.7">
  
  </head>
  
  <body>
  
  <p>
  
  <table border="1" width="90%">
  
  <tr>
  
  <th>
  
  DEPTNO
  
  </th>
  
  <th>
  
  DNAME
  
  </th>
  
  <th>
  
  LOC
  
  </th>
  
  </tr>
  
  <tr>
  
  <td align="right">
  
  10
  
  </td>
  
  <td>
  
  ACCOUNTING
  
  </td>
  
  <td>
  
  NEW YORK
  
  </td>
  
  </tr>
  
  <tr>
  
  <td align="right">
  
  20
  
  </td>
  
  <td>
  
  RESEARCH
  
  </td>
  
  <td>
  
  DALLAS
  
  </td>
  
  </tr>
  
  <tr>
  
  <td align="right">
  
  30
  
  </td>
  
  <td>
  
  SALES
  
  </td>
  
  <td>
  
  CHICAGO
  
  </td>
  
  </tr>
  
  <tr>
  
  <td align="right">
  
  40
  
  </td>
  
  <td>
  
  OPERATIONS
  
  </td>
  
  <td>
  
  BOSTON
  
  </td>
  
  </tr>
  
  </table>
  
  <p>
  
  </body>
  
  </html>
  

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件