常用的SQLPLUS输出格式化命令:
执行一个SQL脚本文件
SQL>startfile_name
SQL>@file_name
将显示的内容输出到指定文件
SQL>SPOOLfile_name
关闭spool输出
SQL>SPOOLOFF
只有关闭spool输出,才会在输出文件中看到输出的内容。
改变列的显示长度.
字符型改变:
SQL>colcolnameformata40
数值型改变:
SQL>colcolnameformat99999.99
是否显示脚本中正在执行的SQL语句.
SQL>SETECHO{ON|OFF}
是否显示当前sql语句查询或修改的行数.
SQL>SETFEED[BACK]{6|n|ON|OFF}
默认只有结果大于6行时才显示结果的行数。如果setfeedback1,
则不管查询到多少行都返回。当为off时,一律不显示查询的行数
是否显示列标题
SQL>SETHEA[DING]{ON|OFF}
当setheadingoff时,在每页的上面不显示列标题,而是以空白行代替
设置一行可以容纳的字符数
SQL>SETLIN[ESIZE]{80|n}
如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
设置页与页之间的分隔
SQL>SETNEWP[AGE]{1|n|NONE}
当setnewpage0时,会在每页的开头有一个小的黑方框。
当setnewpagen时,会在页和页之间隔着n个空行。
当setnewpagenone时,会在页和页之间没有任何间隔。
设置一页有多少行数
SQL>SETPAGES[IZE]{24|n}
如果设为0,则所有的输出内容为一页并且不显示列标题
是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息
SQL>SETSERVEROUT[PUT]{ON|OFF}
这个在shell脚本中经常使用,默认buffer是256个字节。
当输出的大于256时,可以使用SETSERVEROUTonsize1000000;
最大buffer的缓冲区为1000000(9iand8i)。
当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句
SQL>SETWRA[P]{ON|OFF}
当输出的行的长度大于设置的行的长度时(用setlinesizen命令设置),
当setwrapon时,输出行的多于的字符会另起一行显示,否则,
会将输出行的多于字符切除,不予显示。
是否在屏幕上显示输出的内容,主要用与SPOOL结合使用
SQL>SETTERM[OUT]{ON|OFF}
在用spool命令将一个大表中的内容输出到一个文件中时,
将内容输出在屏幕上会耗费大量的时间,设置settermspooloff后,
则输出的内容只会保存在输出文件中,不会显示在屏幕上,
极大的提高了spool的速度。
将SPOOL输出中每行后面多余的空格去掉
SQL>SETTRIMS[OUT]{ON|OFF}
显示每个sql语句花费的执行时间
SQL>setTIMING{ON|OFF}
SQL>setlinesize200------------------------设置屏幕宽度
SQL>setechoon—————————————————设置运行命令是是否显示语句
SQL>setfeedbackon———————————————-设置显示“已选择XX行”
SQL>setcolsep|—————————————————设置列与列之间的分割符号
SQL>setpagesize10———————————————–设置每一页的行数
SQL>SETSERVEROUTPUTON——————————-设置允许显示输出类似dbms_output.putline
SQL>setheadingon————————————————设置显示列名
SQL>settimingon————————————————–设置显示“已用时间:XXXX”
SQL>settimeon—————————————————–设置显示当前时间
SQL>setautotraceon———————————————–设置允许对执行的sql进行分析
sqlplussys/sys@DODOassysdba
sqlplus/assysdba
sqlplus/nolog
SQL>connsys/sys@DODOassysdba
1、执行一个SQL脚本
SQL>startD:\a.sql
SQL>@D:\a.sql
注:若需要在一个脚本中调用另一个脚本,则使用@@D:\a.sql
2、重新执行上一次命令:
SQL>/--也可使用run/r来替代执行
3、编辑脚本:
SQL>edit--编辑当前输入的文本(前1次执行的部分)
SQL>editD:\a.sql--编辑制定文档
注:在txt中编辑完成后保存,关闭即修改完成,使用“/”后运行
4、保存脚本:
SQL>savea--自动存档为a.sql保存在C:\DocumentsandSettings\wangxiaoqi
SQL>saveD:\a--保存到D:\a.sql
5、导入脚本:
SQL>getD:\a
6、显示一个表结构:
SQL>desctab--如果tab不是表,则只显示其类型和名字
7、保存所有输入:
SQL>spoolD:\xxx--建立一个xxx.LST文件
SQL>spool--显示当前spool状态
SQL>select*fromdual;
SQL>spooloff--结束录入
8、执行过程
SQL>executea;
9、增加页眉和页脚:
SQL>TTITLEabc--添加页眉“abc”
SQL>BTITLEdef--添加页脚“def”
SQL>TTITLEOFF--取消页眉显示
三、COLUMN[COL]命令修改字段属性:
可以修改的属性有:
ALI[AS]alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT]format
HEA[DING]text
JUS[TIFY]{L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE{expr|alias}
NEWL[INE]
NEW_V[ALUE]variable
NOPRI[NT]|PRI[NT]
NUL[L]text
OLD_V[ALUE]variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
注:若不同表的同列名,会一起改掉!
1、HEADING--改变字段名
SQL>COLUMNidHEADING'XX|YY'--使用'|'可将列名显示为两行
2、FORMAT--改变字符长度&;格式化数值
SQL>COLUMNidFORMATa20--此字段长20个字符,只能针对字符,若为数字则无法正常显示
SQL>COLUMNidFORMAT$999.00--前缀$,小数点前3位,小数点后2位四舍五入
3、JUSTIFY--改变字段名显示位置
SQL>COLUMNidJUSTIFYcenter--居中显示,默认的都是靠右(r)显示
4、NOPRINT--不显示
SQL>COLUMNidNOPRINT--不显示出来,可用PRINT设置回来
5、NULL--设置NULL值显示
SQL>COLUMNCOMMNULL0.00--将NULL值设置位0.00注意必须加上COMM注:不起作用。
6、WRAPPED--设置回绕方式
SQL>COLUMNidFORMATa5--设置长度为5
SQL>COLUMNidWRAPPED--表示直接按长度回绕
SQL>COLUMNidWORD_WRAPPED--按单词回绕
SQL>COLUMNidTRUNCATED--直接按长度截断
7、COLUMN--显示当前列所有属性
SQL>COLUMNid--后面不加列名时显示所有的COLUMN
8、OFF|ON--设置某一字段关闭
SQL>COLUMNidOFF
9、CLEAR--清空所有字段属性
SQL>CLEARCOLUMNS
四、SQL*Plus的系统参数:
showall--显示所有系统参数的当前值
show[参数]--显示某个系统参数值
set[参数][值]--设置系统参数值
appinfoisOFFandsetto"SQL*Plus"
arraysize15
SQL*Plus一次从oracle获取的行数,设置越大可提高效率,但是对内存有要求,1000以上效果不大
autocommitOFF
针对session的自动提交SQL>SETAUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}--有IMM[EDIATE]则无需再ON
autoprintOFF
autorecoveryOFF
autotraceOFF
设置可以对执行的SQL进行分析SQL>SETAUTOTRACEON
blockterminator"."(hex2e)
btitleOFFandisthefirstfewcharactersofthenextSELECTstatement
cmdsepOFF
colsep""
设置列与列之间的分割符号SQL>SETCOLSEP'|'
compatibilityversionNATIVE
数据库版本,NATIVE为默认,可制定V6,V7,V8
concat"."(hex2e)
copycommit0
COPYTYPECHECKisON
define"&;"(hex26)
替换变量时所使用的字符
describeDEPTH1LINENUMOFFINDENTON
echoOFF
是否显示执行代码SQL>SETECHO{ON|OFF}
editfile"afiedt.buf"
embeddedOFF
escapeOFF
FEEDBACKONfor6ormorerows
查询、修改时所影响的行数SQL>SETFEED[BACK]{6|n|ON|OFF}
flaggerOFF
flushON
headingON
是否显示列标题SQL>SETHEA[DING]{ON|OFF}
headsep"|"(hex7c)
instance"local"
linesize100
设置一行可容纳的字符数SQL>SETLIN[ESIZE]{80|n}
lno8
loboffset1
logsource""
long5000
longchunksize80
markupHTMLOFF...
newpage1
页与页之间的分隔符SQL>SETNEWP[AGE]{1|n|NONE}
当setnewpage0时,会在每页的开头有一个小的黑方框。
当setnewpagen时,会在页和页之间隔着n个空行。
当setnewpagenone时,会在页和页之间没有任何间隔。
null""
设置null值SQL>SETNULL0.00
但是此值显示出来后必为字符型
numformat""
numwidth10
设置number类型的长度限制SQL>SETNUM[WIDTH]16
pagesize9999
一页显示多少行SQL>SETPAGES[IZE]{24|n}
当设置为0时,则所有行显示在一页中,并且不显示标题行
PAUSEisOFF
pno1
recsepWRAP
recsepchar""(hex20)
release1002000100
repfooterOFFandisNULL
repheaderOFFandisNULL
serveroutputONSIZE1000000FORMATWORD_WRAPPED
输出DBMS.OUTPUT时是否显示SQL>SETSERVEROUT[PUT]{ON|OFF}[sizen]
shiftinoutINVISIBLE
showmodeOFF
spoolOFF
sqlblanklinesOFF
sqlcaseMIXED
sqlcode0
sqlcontinue">"
sqlnumberON
sqlpluscompatibility10.2.0
sqlprefix"#"(hex23)
sqlprompt"wangxiaoqi@DODO>"
sqlterminator";"(hex3b)
suffix"sql"
tabON
termoutON
是否显示输出内容,例如spool输出SQL>SETTERM[OUT]{ON|OFF}
timingOFF
SQL语句执行花费时间显示setTIMING{ON|OFF}
trimoutON
标准输出中每行最后的空格是否去掉SQL>SETTRIMS[OUT]{ON|OFF}
trimspoolON
spool标准输出中每行最后的空格是否去掉SQL>SETTRIMS[OUT]{ON|OFF}
ttitleOFFandisthefirstfewcharactersofthenextSELECTstatement
underline"-"(hex2d)
USERis"WANGXIAOQI"
verifyON
wrap:lineswillbewrapped
当长度超过时是否回绕SQL>SETWRA[P]{ON|OFF}--基本上都要ON
五、一些常用的小操作:
showuser--查看当前登录用户
showerrors--显示错误信息
showrel[ease]--显示版本
showSGA--显示SGA
settimeon--前端始终显示时间
selectnamefromv$database;--查看当前所在数据库
select*fromv$instance;--查看所有数据库实例(似乎没什么用)
select*fromV_$PWFILE_USERS;--查看那些用户有SYSDBA/SYSOPER权限