控制SQL*PLUS的环境和数据字典简介

可以通过使用SET命令来设置SQL*PLUS的环境变量,从而达到控制SQL*PLUS 环境的目的。

SET命令的格式如下:

SET 环境变量 变量的值

可以通过使用SHOW命令来显示SQL*PLUS环境变量的配置。SHOW 命令的格式如下:

SHOW 环境变量|ALL

下面用一个例子来解释SET命令的用法。首先查看一下SQL*PLUS的环境变量ECHO 的设置。您可以输入例9-1的SQL*PLUS命令。

例9-1

SQL> show echo

例9.5

SQI>set echo on

例9-2

扫描二维码关注公众号,回复: 14697899 查看本文章

SQL> SELECT * FROM dept;

例9-3

SQL>save "d:\ Oracle\ming\echo_sample"

例9-7

SQL>@d:\ Oracle\ming\echo_sample

例9-7结果

SQL> SELECT * FROM dept

2 /

Loc DEPTNO DNAME

为了看到所有的SET变量值,可以使用SHOWALL命令,如例9-8。

例9-8

SQL> show all

例9-9

SQL> SHOW FEEDBACK

例9-9结果

用于6或更多行的 FEEDBACK ON SET FEEDBACK 的命令格式如下:

■ SET FEED[BACK]{6|n|OFF|ON}

当查询选择的数据行数大于n时,显示返回的数据行数。n为自然数,6为Oracle的默认值。

例9-9的结果告诉我们n为6,即当查询选择了至少6条记录时,显示返回的记录数。但如果查询选择的记录数少于6条时,就不显示返回的记录数。可以使用例9-10和例9-11 的SQL语句来验证这一点。

SET HEA【DING】{ON|OFF}:决定在报告中是否显示列的标题。

SET ARRAY【SIZE】{20|n}:限制SQL*PLUS每次从数据库中获取的行数,最多为5000行。

SET LINE【SIZE】{80|n}:设置每行的字符数。SETPAGE【SIZE】{24|n}:设置每页的行数。

SET LONG{80In}:设置显示LONG、CLOB和NCLOB值时最长的字节宽度。最大值为2G。

COLUMN命令的格式如下:

COL【UMN】【{列名|别名}【可选项】】

可选项:CLE【AR】FOR【MAT】 格式化模式|(HEA【DING】正文【JUS【TIFY】{对齐选项 }

NUL【L】 正文|PRI【NT】|NOPRI【NT】...

例9-13

SQL>col deptno for 999999

从例9-14显示的结果可以看出DEPTNO的宽度确实缩小了,仅为6位数字的宽度。因为 DEPTNO列为数字型,所以例 9-13 的 FOR【MAT】之后要用 999999。这里的999999 是格式化模式,每一个9表示一位数字(不显示0)。6个9就表示6位数字。

例9-14显示的结果表明LOC的宽度也有点大。可以使用如例9-15的SQL*PLUS命令来把该列的宽度设置为9个字符,之后再重新输入与例9-12完全相同的查询语句,如例9-16。

例9-15

SQL> col loc for a9

您可能已经注意到了例9-16显示的标题不太好理解,特别是LOC。可以使用例9-17 的SQL*PLUS命令把标题LOC设置为Location,之后再重新输入与例9-16完全相同的查询语句,如例9-18。

例9-17

SQL> col loc HEADING 'Location' FOR A9

从例9-18显示的结果可以看出标题LOC已变成了Location。HEA【DING】是用来设置列标题的。如果HEA【DING】之后的正文中包含了竖线(),该正文将以竖线为分界线,将竖线左右的正文分别显示在不同的行上(竖线右边的在下一行上)。

如果您的数据库字符集为中文,也可以将某一列的标题设置成中文。例如可以使用例9-19和例9-20的命令将标题LOC变成“地点”并显示dept表的内容。

例9-19

SQL> col loc HEADING '地 点' for a9

您已经修改了DEPTNO和LOC的显示格式及LOC的标题。如果已经记不清它们的格式了,可以使用例9-21和例9-22的SQL*PLUS命令来得到所需的信息。

例9-21

SQL> COL loc

从例9-21和例9-22显示的结果可以看出:一旦设置某一列的格式或标题,这些设置就一直保留在SQL*PLUS中。如果要把某一列的属性重新置回默认值的话,要使用CLEAR 选项。现在我们通过例9-23和例9-24来说明CLEAR选项的用法和含义。

例9-23

SQL> col loc clear

从例9-25 显示的结果很难看出工资(SAL)的单位到底是什么,可以先使用例9-26 的SQL*PLUS命令来格式化SAL列。

例9-26

SQL> col sal for $99,999.99

“S”为美元符号,“,”为千位符号,“.”为小数点。9为不显示前导0。现在重新输入与例9-23完全相同的查询语句,即例9-27。

我们用例9-28和例9-29来说明COLUMN命令的另外一个格式化模式"0"。例9-28

SQL> col sal for $009,999.99

从例9-29显示的结果可以看出,COLUMN命令的格式化模式"0"是强迫显示前导0。如果货币的单位不是美元,我们又如何显示这一货币单位呢?可以使用COLUMN命令的另外一个格式化模式"L",如例9-30和例9-31。

例9-30

SQL> col sal for L99,999.99

TTI【TLE】【正文 |OFF|ON】:设置每页顶部的头标。

BTI【TLE】【正文 |OFF|ON】:设置每页底部的脚标。

BREAK ON 列名【】别名】【SKIPn】:去掉重复的行,并在断开点跳过n行。CLEAR BREAK:清除所有的BREAK设置。

为了使BREAK有效地工作,需要在设置断点的列上使用ORDERBY子句。

猜你喜欢

转载自blog.csdn.net/m0_73505947/article/details/129972840
今日推荐