SQLPlus技巧 指定缺省的编辑脚本的目录

ZDNet软件频道 时间:2009-11-17 作者:赛迪网 云卷云舒 | 天新网 我要评论()
本文关键词:Mssql SQL Server SQL 数据库
本文从多个方面讲述了SQLPlus技巧。

 本文从多个方面讲述了SQLPlus技巧。

1.使用SQL*PLUS动态生成批量脚本

将spool与select命令结合起来使用,可以生成一个脚本,脚本中包含有可以批量执行某一任务的语句。

例1:生成一个脚本,删除SCOTT用户下的所有的表:

a. 创建gen_drop_table.SQL文件,包含如下语句:

SPOOL c:drop_table.SQL 
SELECT "DROP TABLE "|| 
table_name ||";" FROM user_tables; 
SPOOL OFF

b. 以SCOTT用户登录数据库

SQLPLUS > @ …..gen_dorp_table.SQL

c. 在c盘根目录下会生成文件drop_table.SQL文件,包含删除所有表的语句,如下所示:

SQL>SELECT "DROP TABLE "|| table_name ||";" FROM user_tables;         
                                                      
"DROPTABLE"||TABLE_NAME||";"                   
----------------------------- 
DROP TABLE DEPT;                           
DROP TABLE EMP;                           
DROP TABLE PARENT;                         
DROP TABLE STAT_VENDER_TEMP;               
DROP TABLE TABLE_FORUM;                                                    
5 rows selected:SQL> SPOOL OFF。

d. 对生成的drop_table.SQL文件进行编辑去掉不必要的部分,只留下drop table …语句

e. 在scott用户下运行dorp_table.SQL文件,删除scott用户下所有的表。SQLPLUS > @ c:dorp_table.SQL

在上面的操作中,在生成的脚本文件中会有多余的字符,如运行的SQL语句,标题,或返回的行数,需要我们编辑该脚本后再运行,给实际的操作带来诸多不便。懒惰是人的本性,这促使我们用更简单的办法来实现上面的任务。

a. 创建gen_drop_table.SQL文件,包含如下语句:

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 "DROP TABLE "|| table_name ||";" FROM user_tables; 
SPOOL OFF

b. 以SCOTT用户登录数据库SQLPLUS > @ …..gen_dorp_table.SQL

c. 在c盘根目录下会生成文件drop_table.SQL文件,包含删除所有表的语句,如下所示:

DROP TABLE DEPT;                           
DROP TABLE EMP;                           
DROP TABLE PARENT;                         
DROP TABLE STAT_VENDER_TEMP;               
DROP TABLE TABLE_FORUM;

d. 在scott用户下运行dorp_t:

able.SQL文件,删除scott用户下所有的表。SQLPLUS > @ c:dorp_table.SQL

Mssql

SQL Server

SQL

数据库


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134