Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5142551
  • 博文数量: 1696
  • 博客积分: 10870
  • 博客等级: 上将
  • 技术积分: 18357
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-30 15:16
文章分类
文章存档

2017年(1)

2016年(1)

2015年(1)

2013年(1)

2012年(43)

2011年(17)

2010年(828)

2009年(568)

2008年(185)

2007年(51)

分类: Oracle

2009-09-08 01:25:58

2.1.6 声明和初始化变量

在PL/SQL 中,变量必须被声明,以便于被引用。这是在PL/SQL 语句块中最初的声明部分所完成的。请记住,每个声明语句必须以分号结束。可以使用赋值操作符:= 对变量进行赋值。如果把某变量声明为常量,则该变量的值会在整个语句块中都会保持不变。为实现这一点,必须在声明时进行赋值。

在文本文件中输入如下内容,并从SQL*Plus 或者Oracle SQL Developer 会话中运行这个脚本:

 
A)这个脚本的输出是什么?请解释声明了什么以及在语句块的作用范围内该变量的值是什么?答案:输出结果如下所示:
 
最初,变量v_cookies_amt 被声明为NUMBER,值为2;变量v_calories_per_cookie 被声明为CONSTANT NUMBER,值为300 。(由于该变量被声明为CONSTANT,则不会修改这个变量的值)在处理过程中,v_cookies_amt 的值后来被设置为3,最后被设置为当前值:3 +5,也就是8。
 
B)在前面的范例中,在过程的开始处(也就是紧挨着BEGIN 保留字)添加如下表达式。然后,解释脚本开始时和结束时这些变量的值。
 

PL/SQL 变量是使用表达式和操作符集成到一起的。表达式是变量和字面值的序列,中间使用操作符进行分隔。然后,这些表达式被用于操作和比较数据,以及执行计算。

表达式由操作数和操作符的组合构成。操作数是操作符的参数,它可能是变量、常量或者函数调用。操作符指定需要采取的动作(+、** 、OR 等等)。

可以使用括号来控制Oracle 计算表达式的顺序。继续向自己的SQL 脚本添加如下语句:

 
答案:经过修改的脚本应该类似于如下代码:
 

最初,变量v_lname 被声明为数据类型VARCHAR2,长度为30,值为NULL 。变量v_regdate 被声明为日期类型,值为NULL 。变量v_pctincr 被声明为CONSTANT NUMBER,长度为4,精度为2,值为1.15 。变量v_counter 被声明为NUMBER,值为0。变量v_YorN 被声明为类型BOOLEAN,值为TRUE 。

这个过程的输出如下所示(确保在SQL *Plus 会话中已经执行SET SERVEROUTPUT ON):

 

当可执行部分完成后,变量v_counter 的值从NULL 修改为1。变量v_new_cost 的值从NULL 修改为1200 (800 * 1.50)。

请注意,为了在语句块的不同地方随时查看某变量的值,常见的处理方式是添加DBMS_OUTPUT.PUT_LINE(v_variable_name);

C)在脚本执行结束时,这些变量的值是什么?

答案:变量v_counter 的值从1 修改为6,是1+5)*2)/2 的计算结果。变量new_cost 的值从1200 修改为1800,是(1200* 6)/4 的计算结果。这个过程的输出如下所示:

 

如果自己是程序员,知道编程语言有哪些可以使用的操作符是非常重要的。当解决某些编程问题时,这些操作符能够提供很多解决方案。如下是PL/SQL 中可以使用的操作符:

算术操作符(** 、* 、/ 、+ 、–)。

比较操作符(=、<>、!=、<、>、<=、>=、LIKE、IN、BETWEEN、IS NULL、IS NOT NULL、NOT IN)。

逻辑操作符(AND、OR、NOT)。

字符串操作符(||、LIKE)。

表达式。

操作符优先级。

** 、NOT。

+、– (算术操作符以及表示负数)*、/、+、–、|| =、<>、!=、<=。

>=、<、>、LIKE、BETWEEN、IN、IS NULL。

AND (关联逻辑)。

OR (包含逻辑)。
阅读(1622) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~