SQL*Plus基础与脚本编写上半部分
立即解锁
发布时间: 2025-08-20 01:15:49 阅读量: 1 订阅数: 4 

### SQL*Plus基础与脚本编写上半部分
在数据库操作中,SQL*Plus是一个强大的工具,它提供了丰富的功能来帮助我们更高效地管理和操作数据库。下面将详细介绍SQL*Plus的一些基础知识和脚本编写方法。
#### 1. PROMPT、PAUSE和ACCEPT命令的使用
PROMPT、PAUSE和ACCEPT是SQL*Plus中常用的命令,它们分别用于在屏幕上显示文本、暂停脚本执行以及获取用户输入。以下是具体示例:
```sql
SQL> prompt This is a demonstration.
This is a demonstration.
SQL> pause Hit the [Enter] key...
Hit the [Enter] key...
SQL> accept x number -
> prompt "Please enter a value for x: "
Please enter a value for x: 42
SQL> define x
DEFINE X = 42 (NUMBER)
```
在上述示例中,PROMPT命令用于显示提示信息,PAUSE命令暂停脚本执行,直到用户按下回车键,ACCEPT命令获取用户输入的数值,并将其赋值给变量x。需要注意的是,如果输入非数值,会出现错误提示,例如输入“monkey”会得到 `SP2 - 0425: "monkey" is not a valid NUMBER`。另外,使用减号作为转义字符将命令拆分为多行仅适用于SQL*Plus命令,不适用于SQL命令。
#### 2. SQL*Plus系统变量
SQL*Plus系统变量控制着SQL*Plus的整体行为。对于用户定义的变量,我们使用DEFINE和UNDEFINE命令进行管理;而对于系统变量,则需要使用SET和SHOW命令分别进行赋值和取值。以下是一些常见系统变量的示例:
```sql
SQL> show pagesize
pagesize 36
SQL> show pause
PAUSE is OFF
SQL> set pause '[Enter]... '
SQL> set pause on
SQL> set pagesize 10
SQL> select * from employees;
[Enter]...
EMPNO ENAME INIT JOB MGR BDATE MSAL COMM DEPTNO
----- -------- ----- -------- ----- ----------- ----- ----- ------
7369 SMITH N TRAINER 7902 17-DEC-1965 800 20
7499 ALLEN JAM SALESREP 7698 20-FEB-1961 1600 300 30
7521 WARD TF SALESREP 7698 22-FEB-1962 1250 500 30
7566 JONES JM MANAGER 7839 02-APR-1967 2975 20
7654 MARTIN P SALESREP 7698 28-SEP-1956 1250 1400 30
7698 BLAKE R MANAGER 7839 01-NOV-1963 2850 30
7782 CLARK AB MANAGER 7839 09-JUN-1965 2450 10
[Enter]...
EMPNO ENAME INIT JOB MGR BDATE MSAL COMM DEPTNO
----- -------- ----- -------- ----- ----------- ----- ----- ------
7788 SCOTT SCJ TRAINER 7566 26-NOV-1959 3000 20
7839 KING CC DIRECTOR 17-NOV-1952 5000 10
7844 TURNER JJ SALESREP 7698 28-SEP-1968 1500 0 30
7876 ADAMS AA TRAINER 7788 30-DEC-1966 1100 20
7900 JONES R ADMIN 7698 03-DEC-1969 800 30
7902 FORD MG TRAINER 7566 13-FEB-1959 3000 20
7934 MILLER TJA ADMIN 7782 23-JAN-1962 1300 10
14 rows selected.
SQL> set pause off pagesize 42
SQL> show all
...
```
常见的SQL*Plus系统变量及其描述和默认值如下表所示:
| Variable | Description | Default |
| --- | --- | --- |
| COLSEP | 结果列之间显示的字符串 | “ ” (space) |
| CON[CAT] | 标记变量名结尾的字符 |. (period) |
| DEF[INE] | 引用变量值的字符 | & (ampersand) |
| ECHO | 显示或抑制命令(仅适用于脚本) | OFF |
| FEED[BACK] | 从特定最小结果大小开始显示“... rows selected” | 6 |
| HEA[DING] | 在结果上方显示列名 | ON |
| HEADS[EP] | 将列标题分成多行 | \| (vertical bar) |
| LIN[ESIZE] | 行或屏幕宽度,以字符为单位 | 80 |
| LONG | LONG列的默认宽度 | 80 |
| NEWP[AGE] | 每页分页后空行数 | 1 |
| NULL | 结果中null值的显示 | |
| NUMF[ORMAT] | 显示数字的默认格式 | |
| NUM[WIDTH] | 数字列的默认宽度,以数字为单位 | 10 |
| PAGE[SIZE] | 每页的行数 | 14 |
| PAU[SE] | 逐页显示结果,带有暂停 | OFF |
| RELEASE | RDBMS的版本(不能设置) | |
| SQLP[ROMPT] | SQL*Plus提示字符串 | SQL> |
| SQLT[ERMINATOR] | SQL命令分隔符(执行命令) | ; (semicolon) |
| TAB | 显示制表符,否则显示为空格 | ON |
| TIMI[NG] | 显示每个命令后的经过时间 | OFF |
| TRIMS[POOL] | 抑制假脱机文件中的尾随空格 | OFF |
| USER | 当前SQL*Plus会话的用户名(不能设置) | |
| VER[IFY] | 显示变量替换前后的命令行 | ON |
下面是一些系统变量的具体使用示例:
- **FEEDBACK变量**:FEEDBACK变量既可以作为开关(ON或OFF),也可以设置为阈值。例如:
```sql
SQL> select * from departments;
DEPTNO DNAME LOCATION MGR
-------- ---------- -------- --------
10 ACCOUNTING NEW YORK 7782
20 TRAINING DALLAS 7566
30 SALES CHICAGO 7698
40 HR BOSTON 7839
SQL> set feedback 4
SQL> /
DEPTNO DNAME LOCATION MGR
-------- ---------- -------- --------
10 ACCOUNTING NEW YORK 7782
20 TRAINING DALLAS 7566
30 SALES CHICAGO 7698
40 HR BOSTON 7839
4 rows selected
```
0
0
复制全文
相关推荐










