Sqlplus中蕴藏着好多技巧,如果掌握这些技巧,对于在oracle数据库下进行快速开发与有效维护数据库都是有益的。r
r
1.使用SQLPLUS动态生成批量脚本r
将spool与select命令结合起来使用,可以生成一个脚本,脚本中包含有可以批量执行某一任务的语句。r
例1:r
生成一个脚本,删除SCOTT用户下的所有的表:r
a创建ge
_drop_tablesql文件,包含如下语句:r
SPOOL cdrop_tablesqlr
SELECTDROPTABLEtable_
ameFROMuser_tablesr
SPOOLOFFr
b以SCOTT用户登录数据库r
SQLPLUS…ge
_dorp_tablesqlr
c在c盘根目录下会生成文件drop_tablesql文件,包含删除所有表的语句,如下所示r
SQL SELECTDROPTABLEtable_
ameFROMuser_tablesr
r
DROPTABLETABLE_NAMEr
r
DROPTABLEDEPTr
DROPTABLEEMPr
DROPTABLEPARENTr
DROPTABLESTAT_VENDER_TEMPr
DROPTABLETABLE_FORUMr
r
5rowsselectedr
r
SQL SPOOLOFFr
d对生成的drop_tablesql文件进行编辑去掉不必要的部分,只留下droptable…语句r
e在scott用户下运行dorp_tablesql文件,删除scott用户下所有的表。r
SQLPLUScdorp_tablesqlr
r
在上面的操作中,在生成的脚本文件中会有多余的字符,如运行的sql语句,标题,或返回的行数,需要我们编辑该脚本后再运行,给实际的操作带来诸多不便。懒惰是人的本性,这促使我们用更简单的办法来实现上面的任务。r
r
a创建ge
_drop_tablesql文件,包含如下语句:r
setechooffr
setfeedbackoffr
set
ewpage
o
er
setpagesize5000r
setli
esize500r
setverifyoffr
setpagesize0r
settermoffr
settrimso
r
setli
esize600r
setheadi
g offr
settimi
goffr
setverifyoffr
set
umwidth38r
SPOOL cdrop_tablesqlr
SELECTDROPTABLEtable_
ameFROMuser_tablesr
SPOOLOFFr
b以SCOTT用户登录数据库r
SQLPLUS…ge
_dorp_tablesqlr
c在c盘根目录下会生成文件drop_tablesql文件,包含删除所有表的语句,如下所示r
DROPTABLEDEPTr
DROPTABLEEMPr
DROPTABLEPARENTr
DROPTABLESTAT_VENDER_TEMPr
DROPTABLETABLE_FORUMr
d在scott用户下运行dorp_tablesql文件,删除scott用户下所有的表。r
SQLPLUScdorp_tablesqlr
r
r
2.将一个表中的数据导出生成一个文本文件,列与列之间以””隔开r
setechooffr
setfeedbackoffr
set
ewpage
o
er
setpagesize5000r
setli
esize500r
setverifyoffr
setpagesize0r
setter