上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
实例011 使用宿主变量
【实例描述】
PL/SQL中的宿主变量也称为全局变量,它是指在SQL*Plus中声明的Session全局级变量,该变量在整个会话过程中均起作用。Session也即会话,一个客户端从连接到退出的过程称为当前用户的会话。在实际的PL/SQL编程中,合理使用宿主变量能够大幅提高程序的执行效率。
本实例声明一个宿主变量,从数据表STUDENT中取出学号为“120003”的学生,将其赋值到该宿主变量中并输出。其中,STUDENT表的基本数据如图1-28所示,该PL/SQL块执行后的输出结果如图1-31所示。
图1-31 使用宿主变量
【实现代码】
SQL> VAR name VARCHAR2(20); SQL> BEGIN 2 SELECT sname INTO :name FROM STUDENT WHERE SNO='120003'; 3 END; 4 / SQL> PRINT name
【范例解析】
该实例中首先通过关键字VAR声明了变量name,在PL/SQL块中查询数据表STUDENT中指定的字段并将其值赋给该变量。读者可以看到,name变量没有在PL/SQL块的DECLARE部分声明,但也能正确获取字段值,这就是宿主变量的作用。读者在使用宿主变量时要注意如下两个方面。
● 声明宿主变量可以使用关键字VAL来实现。
● PL/SQL块中访问宿主变量时要在变量前加符号“:”,本实例中即使用了该符号。
注意:在SQL*Plus中输出字符串可通过关键字PRINT来完成,这与在PL/SQL块中使用的DBMS_OUTPUT.PUT_LINE是不同的。