SQL*Plus菜鸟笔记之第五篇

我们如果执行的命令是PL/SQL blocks(一大片命令),如果你想编辑在SQL Buffer的内容,你可以save出来或者在脚本里面进行编辑但是如果你觉得麻烦的话,接下来的一些命令可以帮助你。


1、list&change
l m :把buffer中第m行的命令设置为当前行,l为list的简写
c/m/n:m为被替换字符,n为替换后字符也就是你想修改成什么样子的字符,c为change的简写
提示你一个小技巧,如果你这样写,c/m,那其实就是删除m字符串,不替换内容,执行的相当于del的效果。
2、添加内容到行末尾
append m:将你想添加的字符串m添加到某行的最后,注意append后面跟两个空格,append可以用简写a

3、增加新行
0 m :插入新行m到第一行之前,原第一行顺延变成第二行,其他行依次类推。
input m:插入新行m到当前行之后,input可用简写i


4、删除行
del n 删除第n行
del n m 删除第n行到m行
del n * 删除第n到当前行
del n last 删除第n行到最后一行
del * n 删除当前行到m行
del * last 删除当前行到最后一行
del last 删除最后一行
ps:上面的del全都可以换成list命令。你可以看看效果:)
在sqlplus命令中,只有del和list命令是可对多行进行操作的,其他命令都是单行操作级别的。

5、脚本注释方法及注意事项
注释的三种方法:
REM : 全称为remark,注释单行内容,被注释后的脚本仅限sqlplus环境使用。
/*.......*/ :标准注释方法,可注释多行内容,被注释后的脚本具有通用性,推荐使用这个
-- : 注释单行内容。

注意事项:
5.1 不要在语句的开头几个关键字中放注释内容。 因为sqlplus是通过扫描开头几个关键字来判断你想执行的命令类型是SQL、PL/SQL bllocks还是sqlplus?避免对sqlplus的判断有干扰。
5.2 不要再语句结束符号后加注释,结束符包括".",";","/",一共三种,用引号括起来的。
5.3 不要把分号";"放在行注释内容中
5.4 不要再注释内容中使用"&"
给一个针对5.1的例子:

SQL> run
1 /*this just a joke*/
2 SELECT sex_code,sex_name from sex_dict
3 Where sex_code=1
4 /*haha*/
5*
/*this just a joke*/
*
第 1 行出现错误:
ORA-24374: 在读取或执行并读取之前没有完成定义


6、运行脚本
直接使用@或者start即可运行脚本。例如@/opt/m.sql或者start /opt/m.sql


7、常用的SQLPLUS输出格式化命令:
a. 执行一个SQL脚本文件
SQL>start file_name
SQL>@ file_name
b. 将显示的内容输出到指定文件
SQL> SPOOL file_name
c. 关闭spool输出
SQL> SPOOL OFF
只有关闭spool输出,才会在输出文件中看到输出的内容。
d. 改变列的显示长度.
字符型改变:
SQL> col colname format a40
数值型改变:
SQL> col colname format 99999.99
e. 是否显示脚本中正在执行的SQL语句.
SQL> SET ECHO {ON|OFF}
f. 是否显示当前sql语句查询或修改的行数.
SQL> SET FEED[BACK] {6|n|ON|OFF}
默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,
则不管查询到多少行都返回。当为off 时,一律不显示查询的行数
g. 是否显示列标题
SQL> SET HEA[DING] {ON|OFF}
当set heading off 时,在每页的上面不显示列标题,而是以空白行代替
h. 设置一行可以容纳的字符数
SQL> SET LIN[ESIZE] {80|n}
如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
i. 设置页与页之间的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
当set newpage n 时,会在页和页之间隔着n个空行。
当set newpage none 时,会在页和页之间没有任何间隔。
j. 设置一页有多少行数
SQL> SET PAGES[IZE] {24|n}
如果设为0,则所有的输出内容为一页并且不显示列标题
k. 是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息
SQL> SET SERVEROUT[PUT] {ON|OFF}
这个在shell脚本中经常使用,默认buffer是256个字节。
当输出的大于256时,可以使用SET SERVEROUT on size 1000000;
最大buffer的缓冲区为1000000(9i and 8i)。
l. 当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句
SQL> SET WRA[P] {ON|OFF}
当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),
当set wrap on时,输出行的多于的字符会另起一行显示,否则,
会将输出行的多于字符切除,不予显示。
m. 是否在屏幕上显示输出的内容,主要用与SPOOL结合使用
SQL> SET TERM[OUT] {ON|OFF}
在用spool命令将一个大表中的内容输出到一个文件中时,
将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,
则输出的内容只会保存在输出文件中,不会显示在屏幕上,
极大的提高了spool的速度。
n. 将SPOOL输出中每行后面多余的空格去掉
SQL> SET TRIMS[OUT] {ON|OFF}
o. 显示每个sql语句花费的执行时间
SQL>set TIMING {ON|OFF}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26006637/viewspace-706153/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26006637/viewspace-706153/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值