您现在的位置:软界网技术中心数据库SQLServer > 技术显示
SQLPlus技巧 指定缺省的编辑脚本的目录
2008-2-4 12:15:00   网友评论       阅读次数 点此评论
   

本文从多个方面讲述了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 软件开发网 www.mscto.cn 

b. 以SCOTT用户登录数据库:

SQLPLUS > @ …..\gen_dorp_table.sql 软件开发网 www.mscto.com

c. 在c盘根目录下会生成文件drop_table.sql文件,包含删除所有表的语句,如下所示: 软件开发网 www.mscto.com

软件开发网 www.mscto.com

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 …语句

软件开发网 www.mscto.cn

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

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

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

软件开发网 www.mscto.com

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  
 
      来源: 作者:
 
【评论查看】