SQL*Plus是一个基于C/S结构的客户端操作工具。主要用来进行数据查询和数据处理。
# 设置SQL*Plus的运行环境
使用SET命令为SQL*Plus设置运行环境。
## SET命令概述
语法:
SET system_variable value
SET命令差用变量名及其可用值:
变量名 | 可选值 | 说明 |
ARRAY[SIZE] | 20(默认值)|n | 设置查询的行数,是SQL*Plus一次从数据库获取的行数,有效值为1到5000。 |
AUTO[COMMIT] | OFF(默认值)|ON|IMMEDIATE | 控制数据库是否自动提交。IMMEDIATE等同于ON。 |
BLO[CKTERMINATOR] | .(默认值)|C | 设置非字母数字字符,用于结束PL/SQL块。CC |
CMDS[EP] | ;|C|OFF(默认值)|ON | 设置非字母数字字符,用于分隔在一行中输入的多个SQL*Plus命令。ON或OFF控制在一行中是否能输入多个命令。ON时将自动将命令分隔符设置为分号,其中C表示所置字符。 |
ECHO | OFF|ON | 控制START命令是否列出命令文件中的每一命令,若设置为ON时,则列出命令。 |
FLU[SH] | OFF|ON(默认值) | |
HEA[DING] | OFF|ON(默认值) | 控制列标题的打印。 |
LIN[ESIZE] | 80(默认值)|n | 设置SQL*Plus中以行显示的最多字符总数 |
NEWP[AGE] | 1(默认值)|n | 设置一页中空行的数量 |
NULL | text | 设置表示空值的文本,默认以空格显示。 |
NUMF[ORMAT] | 格式 | 设置显式数值的默认格式,该格式是数值格式。 |
PAGES[IZE] | 14(默认值)|n | 设置从顶部标题至页结束之间的行数。 |
PAU[SE] | OFF(默认值)|ON|TEXT | 设置SQL*Plus输出结果是否滚动显示。当设置为ON时,表示输出结果的每一页都暂停,用户按回车键后继续显示;在设置为ON,再设置字符串时,则每次暂停都将显示该字符串。 |
RECSEP | WR[APPED](默认值)|EA[CH]|OFF | 指定显示或打印记录分行符的条件。 |
SERVEROUT[PUT] | OFF|ON [SIZE n] | 控制在SQL*Plus中的存储过程是否显示输出。SIZE设置缓冲输出的字节数,默认为2000,n不能小于2000或大于100万。 |
SHOW[MODE] | OFF(默认值)|ON | 控制SQL*Plus在执行SET命令时是否列出其新旧值设置。ON为显示。 |
SPA[CE] | 1(默认值)|n | 设置输出列之间空格的数目,其最大值为10。 |
SQLCO[NTINE] | >;(默认值)|文本 | 在一附加行上继续某个SQL*Plus命令时,SQL*Plus以该设置的字符序列进行提示。 |
SQLN[UMBER] | OFF|ON(默认值) | 为SQL命令和PL/SQL块的第二行和后继行设置提示。若为ON,则提示行号;若为OFF,则提示设置为SQLPROMPT的值。 |
TI[ME] | OFF(默认值)|ON | 控制当前日期的显示。 |
TIMI[NG] | OFF(默认值)|ON | 控制时间统计的显示。 |
UND[ERLINE] | -(默认值)|C|OFF|ON(默认值) | 设置用在列标题下的字符。 |
VER[IFY] | OFF|ON(默认值) | 控制SQL*Plus用值替换前、后是否列出命令的文本。 |
WRA[P] | OFF|ON(默认值) | 控制SQL*Plus是否截断数据项的显示。 |
# 常用SQL*Plus命令
1.设置列标题大小
col col_Name format a10
2.设置null的显示
set null test
比如设置null显示为UNKNOWN
set null UNKNOWN
3.使得pl/sql程序能够在sqlplus中输出结果
set serveroutput on
4.HELP命令
help startup:查看startup命令的帮助信息。
help index:查看SQL*Plus命令清单:
SQL> help index
Enter Help [topic] for help.
@ COPY PAUSE SHUTDOWN
@@ DEFINE PRINT SPOOL
/ DEL PROMPT SQLPLUS
ACCEPT DESCRIBE QUIT START
APPEND DISCONNECT RECOVER STARTUP
ARCHIVE LOG EDIT REMARK STORE
ATTRIBUTE EXECUTE REPFOOTER TIMING
BREAK EXIT REPHEADER TTITLE
BTITLE GET RESERVED WORDS (SQL) UNDEFINE
CHANGE HELP RESERVED WORDS (PL/SQL) VARIABLE
CLEAR HOST RUN WHENEVER OSERROR
COLUMN INPUT SAVE WHENEVER SQLERROR
COMPUTE LIST SET XQUERY
CONNECT PASSWORD SHOW
5.DESCRIBE命令
查询指定对数据对象的组成结构。可缩写为desc。
可以在编写语句的过程中,使用#desc object_name随时查看对象信息:
SQL> select id,
2 # desc test --忘记列名,重新查看
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
NAME VARCHAR2(100)
2 name from test; --继续写SQL语句
no rows selected
6.SPOOL命令
将查询结果输出到指定文件中。语法为:
SPO[OL] [file_name[.ext] [CRE[ATE]|REP[LACE]|APP[END]] |OFF|OUT]
-
默认输出文件扩展名为LST;
-
CREATE:创建新的脱机文件,默认行为;
-
REPLACE:替代已经存在的输出文件;
-
APPEND:将内容附加到一个已经存在的文件中;
-
OFF|OUT:关闭SPOOL输出;
7.DEFINE命令
定义用户变量。
8.SHOW命令
显示SQL*Plus系统变量的值或SQL*Plus环境变量的值。
9.EDIT命令
编辑SQL缓冲区或指定磁盘文件中的SQL语句或PL/SQL块。
10.SAVE命令
将SQL缓冲区中的最近一条SQL语句或PL/SQL块保存到一个文件中。
如果要清空SQL缓冲区中的内容,可以使用clear buffer命令。
11.GET命令
将一个SQL脚本文件中的内容放进SQL缓冲区。
12.START和@命令
用来执行一个SQL脚本文件。
# 格式化查询结果
可对结果进行设置列的标题、定义输出值的显示格式和显示宽度、为报表增加头标题和底标题、在报表中显示当前日期和页号等。
## COLUMN命令
该命令可以实现格式化查询结果、设置列宽度、重新设置列标题等功能。语法:
COL[UMN] [column_name|alias|option]
option可用值有:
option选项值 | 说明 |
CLEAR | 恢复默认设置 |
FORMAT | 格式化指定的列 |
HEADING | 定义列标题 |
JUSTIFY | 调整列标题的对齐方式。默认数值类型的为右对齐,其他未左对齐 |
NULL | 指定一个字符串,若列值为null,则由该字符串代替 |
PRINT/NOPRINT | 显示列标题或隐藏列标题,默认为PRINT |
ON|OFF | 控制定义的显示属性的状态,默认为ON |
WRAPPED | 当字符串的长度超过显示宽度时,将字符串的超出部分折叠到下一行显示 |
WORD_WRAPPED | 表示从一个完整的字符处折叠 |
TRUNCATED | 表示截断字符串尾部 |
## TTITLE和BTITLE命令
用以为输出结果设置报表头、为每页设置页标题和页码、为整个输出结果设置报表未等。
### TTITLE
语法:
TTI[TLE] [printspec [text|variable] ... ] | [OFF|ON]
-
printspec:用来作为头标题的修饰性选项;
-
text:用于设置输出结果的报表头文字;
-
variable:在头标题中输出相应的变量值;
-
OFF:禁止打印头标题;
-
ON:允许打印头标题;
printspec选项值的说明:
printspec选项的值 | 说明 |
COL | 指定在当前行的第几列打印头部标题 |
SKIP | 跳到从下一行开始的第几行,默认为1 |
LEFT | 在当前行中左对齐打印数据 |
CENTER | 在当前行中间打印数据 |
RIGHT | 在当前行中右对齐打印数据 |
BOLD | 以黑体打印数据 |
### BTITLE
设置报表尾。
选项与TTITLE相同。