Sql*plus技巧之SPOOL应用

  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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值