设置SQL*Plus的运行环境
设置SQL*Plus的运行环境
1. 语法格式:set system_variable value
system_variable:变量名
value:变量值
2. SET命令的常用变量名、可选值(红色为默认值)及其说明:
变量名 | 可选值 | 说明 |
ARRAY[SIZE] | 20|n | 设置查询行数,是SQL*Plus一次从数据库获取的行数。大的值可提高查询和子查询的有效性,可获取许多行,但也需要更多的内存。当超过1000时,其效果不大。 |
AUTO[COMMIT] | OFF|ON|IMMEDIATE | 控制Oracle对数据库的修改的提交。设置为ON时,在Oracle执行每个SQL命令或PL/SQL块后对数据库自动提交修改;设置为OFF时,则制止自动提交,需要手工地提交修改(即需要执行COMMIT命令);IMMEDAITE功能同ON |
BLO[CKTERMINATOR] | .|C | 设置非字母数字字符,用于结束PL/SQL块。要执行块时,必须发出RUN命令或/命令。 |
CMDS[EP] | ;|C|OFF|ON | 设置非字母数字字符,用于分隔在一行中输入的多个SQL*Plus命令,ON或OFF控制在一行中是否能输入多个命令。ON时将自动地将命令分隔符设为分号(;),其中C表示所置字符。 |
ECHO | OFF|ON | 控制START命令是否列出命令文件中的每一命令,若设置为ON时,则列出命令;若为OFF,则制止列清单。 |
FLU[SH] | OFF|ON | 控制输出送至用户的显示设备。设置为OFF时,运行操作系统做缓冲区输出;设置为ON时,不允许缓冲。仅当非交互方式运行命令文件时,使用OFF,这样可减少程序I/O总数,从而改进性能。 |
HEA[DING] | OFF|ON | 控制报表中列标题的打印。设置为ON时,在报表中打印列标题;为OFF时禁止打印列标题。 |
LIN[ESIZE] | 80|n | 设置SQL*Plus在一行中显示的最多字符总数,它还控制在TTITLE和BTITLE中对准中心的文本和右对齐文本。可定义LINESIZE为1至最大值,其最大值依赖于操作系统。 |
NEWP[AGE] | 1|n | 设置一页中空行的数量。一页数据行最后一行至下一页标题之间的空白行数。 |
NULL | text | 设置表示空值(NULL)的文本,如果NULL没有文本,则显示空格(默认时)。使用COLUMN命令中的NULL子句可控制NULL变量对该列的设置。 |
NUMF[ORMAT] | 格式(掩码) | 设置显示数字的默认格式,该格式是数字格式。常用掩码及说明如下:9:查询结果中数字替换格式中的掩码;0:格式中的值屏蔽掉查询结果中的数字;$:在查询结果中的数字前添加美元前缀;S为数字显示符号类型,通常用于显示查询结果中的正负数字;,:在字符“,”位置上旋转逗号。 |
PAGES[IZE] | 14|n | 设置从顶部标题至页结束之间的行数。当SQL*Plus返回查询结果时,它首先会显示用户所选择数据的列标题,然后在相应列标题下显示数据行,上下两个列标题所在行之间的空间就是SQL*Plus的一页。一页中所显示的数据行的数量就是PAGESIZE变量的值。 |
PAU[SE] | OFF|ON|TEXT | 设置SQL*Plus输出结果是否滚动显示。当设置为ON时,表示输出结果的每一页都暂停,用户按Enter键后继续显示。在设置PAUSE的值为ON后,若再设置字符串时一一设置TEXT的值,则每次暂停都将显示该字符串。 |
RECSEP | WR[APPED]|EA[CH]|OFF | 指定显示或打印记录分行符的条件。一个记录分行符是由RECSEPCHAR指定的字符组成的单行,空格为RECSEPCHAR的默认字符。 |
SERVEROUT[PUT] | OFF|ON|[SIZE n] | 控制在SQL*Plus中的存储过程是否显示输出。若设置为OFF,则禁止;若设置为ON,则显示输出。SIZE设置缓冲输出的字节数,缺省值为2000,n不能少于2000或大于100万。 |
SHOW[MODE] | OFF|ON | 控制SQL*Plus在执行SET命令时是否列出其新老值old或new的设置,其中,ON表示列出新老值 |
SPA[CE] | 1|n | 设置输出列之间空格的数目,其最大值为10。 |
SQLCO[NTINUE] | >;|文本 | 在一附加行上继续某个SQL*Plus命令时,SQL*Plus以该设置的字符序列进行提示。 |
SQLN[UMBER] | OFF|ON | 为SQL命令和PL/SQL块的第二行和后继行设置提示。若为ON,则提示行号;若为OFF,则提示设置为SQLPROMPT的值。 |
TI[ME] | OFF|ON | 控制当前日期的显示。若为ON,则在每条命令提示前显示当前时间;若为OFF,则禁止时间的显示。 |
TIMI[NG] | OFF|ON | 控制时间统计的显示。若为ON,则显示每一个运行的SQL命令或PL/SQL块的时间统计;若为OFF,则禁止每一个命令的时间统计。 |
UND[ERLINE] | -|C|OFF|ON | 设置用于SQL*Plus报表下划线列标题的字符。ON或OFF将下划线设置成开或关状态。 |
VER[IFY] | OFF|ON | 控制SQL*Plus用值替换前、后是否列出命令的文本。若为ON,则显示文本;若为OFF,则禁止列清单。 |
WRA[P] | OFF|ON | 控制SQL*Plus是否截断数据项的显示;若为OFF,则截断数据项;若为ON,则充许数据项缠绕到下一行。 |
3. 注意:通过SET命令设置的环境变量是临时的,不是永久的。当用户退出SQL*Plus环境后,用户设置的环境参数会全部丢失。
4. 使用SET命令设置运行环境
使用“set time on”命令设置在SQL*Plus命令提示符“SQL>”前面显示当前的系统时间:
SQL> set time on
10:27:06 SQL>
使用“$999,999,999.00”格式显示scott.emp表中的雇员工资。