链接:

通过SQL*PLUS我们可以构建友好的输出,满足多样化用户需求。
本例通过简单示例,介绍通过sql*plus输出xls,html两种格式文件.
首先创建两个脚本:
1.main.sql
用以设置环境,调用具体功能脚本
2.功能脚本-get_tables.sql
为实现具体功能之脚本
通过这样两个脚本可以避免spool中的冗余信息,参考:
如何去除SQLPLUS中SPOOL的冗余信息

示例如下:
1.main.sql脚本:
[oracle@localhost tmp]$ more main.sql  set linesize 200   set term off verify off feedback off pagesize 999   set markup html on entmap ON spool on preformat off  spool tables.xls     // 改成tables.html  就是html格式的  @get_tables.sql  spool off  exit  

2.get_tables.sql脚本:
[oracle@localhost tmp]$ more get_tables.sql   select owner,table_name,tablespace_name,blocks,last_analyzed  from all_tables order by 1,2;  
  
[oracle@localhost tmp]$ more get_tables.sql   select * from scott.emp where id='3';  

3.执行并获得输出:
  
[oracle@localhost tmp]$ sqlplus "/ as sysdba" @main    SQL*Plus: Release 9.2.0.4.0 - Production on Mon Apr 25 10:30:11 2005    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.      Connected to:  Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production  With the Partitioning option  JServer Release 9.2.0.4.0 - Production    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production  With the Partitioning option  JServer Release 9.2.0.4.0 - Production  [oracle@localhost tmp]$ ls -l tables.xls   -rw-r--r--    1 oracle   dba         69539 Apr 25 10:30 tables.xls  
[oracle@localhost tmp]$