SQL*Plus 的运行环境是用来输入、执行 SQL*Plus 命令和显示返回结果的场所,设置合适的 SQL*Plus 运行环境,可以使 SQL*Plus 按照用户的要求运行和执行各种操作。set 命令也称 set 变量或维护系统变量,利用它可为 SQL*Plus 交互建立一个特殊的环境。
一、set 命令概述
用户可以使用 set 命令设置 SQL*Plus 的运行环境
语法:
set system_variable value
- system_variable:变量名
- value:变量值
set 命令的常用变量名、可选值及其说明如表:
变量名 | 变量可选值 | 说明 |
Array[size] | 20(默认值) |
设置查询的行数,是SQL*Plus一次工数据库获取的行数, 大的值可提供查询和子查询的有效性 |
Auto[commit] | off(默认值)|on|immediate |
控制Oracle对数据的修改的提交,为off时,则制止自动提交,需要手动提交修改 设置为on时,在Oracle 执行每个SQL命令或pl/sql 块后自动提交修改(同IMMediate) |
Echo | off|on |
控制 start 命令是否列出命令文件中的每一命令,若设置为on时,则列出命令 若为off,则制止列清单 |
Flu[sh] | off|on(默认值) |
控制输出送至用户的显示设备。设置为off时,运行操作系统做缓冲区输出;设置为on时,不允许缓冲; 仅当非交互方式运行命令文件时使用off,这样可减少程序I/O 总数,从而改进性能 |
Hea[ding] | off|on(默认值) | 控制报表中列标题的打印。设置为on时,在报表中打印列表题,为off时禁止打印列标题 |
Newp[age] | 1(默认值)|n | 设置一页中空行的数量 |
Numf[ormat] | 格式 | 设置显示数值的默认格式,该格式是数值格式 |
Pages[ize] | 14(默认值)|n | 设置从顶部标题至页结束之间的行数 |
Show[mode] | off(默认值)|n | 控制SQL*Plus 在执行set 命令时是否列出其新老值 old 或new 的设置,其中,on值表示列出新老值 |
二、使用 set 命令设置运行环境
1、pagesize 变量
该变量用来设置从顶部标题至页结束之间的行数。
语法格式:
set pagesize value
value 变量的默认值为14,可以根据实际情况修改value 的值,该值是一个正整数。
当 SQL*Plus 返回查询结果时,首先会显示用户所选择数据的列标题,然后再相应列标题下显示数据行,上下两个列标题所在行之间的空间就是 SQL*Plus 的一页。一页所显示的数据行的数量就是 该变量的值。可以使用 show pagesize 命令来查看这一页有多少行。
2、Newpage 变量
该变量用来设置一页中空行的数量。
语法格式:
set newpage value
value 的默认自为1,根据实际需要,可以修改 value 的值,该值是一个正整数。可以使用 show newpage 命令来查看这一页有多少空行。
3、Linesize 变量
该变量用来设置在 SQL*Plus 环境中一行所显示的最多字符总数。
语法格式:
set linesize value
value 的默认值是80,可以根据实际需要,修改value 的值,该值为一个正整数。
如果数据行的宽度大于 linesize 变量的值,当在 SQL*Plus 环境中按照 linesize 指定的数量输出字符,数据就会发生折行显示的情况。
可以使用 show line命令来查看这一行可以显示的最多字符总数。
4、Pause 变量
该变量用来设置 SQL*Plus 输出结果是否滚动显示。
语法格式:
set pause value
value 变量值有以下3种情况:
- off:默认值,返回结果一次性输入完毕,中间的每一页不会暂停
- on:表示输出结果的每一页都粘贴,用户按 enter 键后继续显示
- text:在设置 pause 的值为 on 之后,若再设置 text 的值,则每次暂停都将显示该字符串。当 pause 的值为off时,设置 text 值没有任何意义。
在 SQL*Plus 环境中显示多行数据,并且一页无法容纳这么多数据行时,如果pause 变量值为off,则 SQL*Plus 窗口输出的数据行会快速滚动。不利于用户查看。这就需要把 pause 的值设置为on 时,就可以实现控制 SQL*Plus 在显示完一页后暂停滚动,直到按 enter 键后才继续显示下一页。还可以通过pause 变量设置暂停后显示的字符串,以便于提示用户操作。
5、Numformat 变量
该变量用来设置显示数值的默认格式,该格式是数值格式。
语法格式:
set numformat format
format 为数值的掩码,数值的常用掩码如下:
掩码 | 说明 | 举例 |
9 | 查询结果中数字替换格式中的掩码 | 999 |
0 | 格式中的掩码屏蔽掉查询结果中的数字 | 999.00 |
$ | 在查询结果中的数字前添加美元前缀 | $999 |
S | 为数字显示符号类型,通常用于显示查询结果中的正负数字 | S999 |
, | 在字符 "," 位置上放置逗号 | 999,99 |
当用户查询数据库中的数值时,SQL*Plus 环境将使用默认的格式显示数值,即以10个字符的宽度和常规格式来显示数字。