Oracle数据库编程经典300例
上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是不同的。