您的位置:首页 > 数据库

Sql*plus技巧之SPOOL应用

2008-02-26 11:41 267 查看
Sql*plus中蕴藏着好多技巧,如果掌握这些技巧,对于在oracle数据库下进行快速开发与有效维护数据库都是有益的。下面就介绍一二
本文来自: 中国网管联盟(bitsCN.com) 详细出处参考:http://www.bitscn.com/oracle/exploiture/200611/82320.html

1.使用SQL*PLUS动态生成批量脚本
创建gen_drop_table.sql文件,包含如下语句:
set echo off //不显示start启动的脚本中的每个SQL
set feedback off //不回显处理记录条数
set newpage none

set linesize 2000 //一行字符个数
set verify off 关闭确认信息
set pagesize 0 //不分页
set term off //去除每行拖尾空格
set trims on //去除重定向每行的拖尾空格
set heading off
set timing off
set verify off
set numwidth 38
SPOOL c:/drop_table.sql
SELECT 'DROP TABLE '|| table_name ||';' FROM user_tables;
SPOOL OFF

2.将一个表中的数据导出生成一个文本文件,列与列之间以”,”隔开

set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading off
set timing off
set verify off
set numwidth 38
SPOOL c:/drop_table.sql
select DEPTNO || ',' || DNAME FROM DEPT;
SPOOL OFF

3.动态生成spool命令所需的文件名

  在我们上面的例子中,spool命令所需要的文件名都是固定的。有时我们需要每天spool一次,并且每次spool的文件名都不相同,如文件名包含当天的日期,该如何实现呢?
column dat1 new_value filename;
select to_char(sysdate,'yyyymmddhh24mi') dat1 from dual;
spool c:/&&filename..txt
select * from dept;
spool off;
4.如何从脚本文件中得到WINDOWS环境变量的值:

  在windos中:

spool c:/temp/%ORACLE_SID%.txt
select * from dept;
...
spool off
  在上面的例子中,通过%ORACLE_SID%的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: