分类: Oracle
2009-09-08 01:29:52
3.1.1 变量初始化时使用SELECT INTO 语法
A)执行脚本ch03_1a.sql 。请问,SQL *Plus 界面会显示什么内容?并请解释显示结果。答案:会看到如下结果:
在PL/SQL 语句块的声明部分,v_average_cost 变量声明为VARCHAR2 。在该语句块的可执行部分,使用SELECT INTO 语法,把course 表中课程的平均成本赋予这个变量。使用SQL 函数TO_CHAR 格式化处理这个数值。然后,使用DBMS_OUTPUT 在屏幕上输出处理结果。
B)在相同的PL/SQL 语句块中,在SELECT INTO 语法之前使用DBMS_OUTPUT 。请问,SQL *Plus 界面会显示什么?请在PL/SQL 语句块的每个点解释这个变量的值。答案:会看到如下输出结果:
当声明变量v_average_cost 时,其值被设置为NULL 。由于在赋予该变量之前使用DBMS_OUTPUT,则该变量的输出结果是NULL 。
在使用SELECT INTO 之后,变量的值被设置为与问题A 相同的值。但是由于没有使用DBMS_OUTPUT,因此此时的变量值并没有显示。
在简单的PL/SQL 语句块中,数据定义语言(Data De?nition Language,DDL)是无效的。(使用更高级的技术,诸如DBMS_SQL 包中的过程就能够使用DDL 。)但是,通过使用变量,或者在PL/SQL 语句块中使用DML 语句,就可以非常容易实现DML 操作。下面的PL/SQL 语句块范例会更新邮政编码表中已有的数据条目。