SQLPLUS执行PL/SQL语句块

时间:2023-08-13 21:52:56

1.首先登录Oracle HR schema:

SQLPLUS执行PL/SQL语句块

2.对于PL/SQL程序分号表示语句的结束;而使用 "."  号表示整个语句块的结束,也可以省略。按回车键后,该语句块不会执行,即不会发送到数据库服务器,而是必须使用 "/" 符号执行PL/SQL 语句块

SQLPLUS执行PL/SQL语句块

使用 "/" 执行PL/SQL 语句块

SQLPLUS执行PL/SQL语句块

3. 在上例中,虽然执行了PL/SQL 程序,但是没有输出结果的显示。数据库服务器肯定将数据传输给了SQLPLUS,并且变量var_first_name 和 var_last_name 都已经被复制,问题是结果没有显示在SQLPLUS上,解决办法是在执行上例中的PL/SQL 程序之前,执行如下命令:

SQLPLUS执行PL/SQL语句块

此后,可以看到结果显示在SQLPLUS上:

SQLPLUS执行PL/SQL语句块

总结:为了在SQLPLUS中看到PL/SQL 程序 执行的结果,需要:

1 . set serveroutput on

2. 在PL/SQL语句块末尾使用 "/" 执行PL/SQL语句块

severoutput 默认情况下是关闭的,为了 设置 set serveroutput on ,可以有以下办法:

1.每次手动输入 set serveroutput on ,手动开启。

2.在SQLPLUS 中的 glogin.sql 文件中加一条SQL语句: set serveroutput on;

此后,每次启动SQLPLUS 就会自动 run 这条语句,无需手动输入。

本地的glogin.sql 文件位置为: D:\Oracle_Install_Dir\app\oracle\product\11.2.0\server\sqlplus\admin\glogin.sql

加了 set serveroutput on;之后的glogin.sql 文件如下:

SQLPLUS执行PL/SQL语句块

此时,在SQLPLUS中不需要手动输入set serveroutput on ,即可执行 PL/SQL语句块,看到结果。

SQLPLUS执行PL/SQL语句块

3.可以编写一个触发器,一旦数据库登录即修改参数serveroutput 为 on.