前言:使用变量可以保存计算机需要处理的数据,为了给该变量分配适当的内存空间,还需要指定数据类型,有的数据类型还需要指定长度,如字符串。
有些类型可以用于建表(如char),有些则不能(如boolean,rowtype)。
同样是字符串,建表时的限制为4000,在脚本中则为3万多。
简单语法:变量名 数据类型;
完整语法:变量名 [constant] 变量类型 [not null] [default 值 | :=值]
其中“[ ]”表示可以不写,“|”表示任选其一。
下面给出变量定义及解释,数据类型先用建表时所用的数据类型:v1 char:
说明:没有给出长度,所以v1只能保存一个字符。超过了则会出错:数字或值错误 : 字符串缓冲区太小。
v2 varchar2(10);
说明:v2最多只能保存10个字符。如果不写长度,会出错:字符串长度限制在范围(1...32767)
v3 number;
说明:v3保存的数字范围非常大,几乎可以认为是没有限制的。
v4 number(5);
说明:v4最多能够保存5位整数。如果有小数,Oracle会自动四舍五入。如果整数部分超过5位,则会报错:数字或值错误 : 数值精度太高。
v5 number(5,2);
说明:v5最多能够保存3位整数,2位小数。如果小数位不止2位,则Oracle会自动四舍五入。整数位超过3位会报错,同上。
v6 date;
说明:可以直接保存sysdate的值;如果是指定日期,则要用to_date来转化。否则报错:文字与格式字符串不匹配。
定义了变量,变量的默认值为空,此时进行计算,结果一定为NULL。所以变量必须初始化。
初始化有三种方式:v7 constant number := 100;
说明:定义v7为常量,定义时就必须给定值。然后在程序中就不能再对v7进行赋值了,否则会报错:表达式 'V7' 不能用作赋值目标。
v8 number default 10;
说明:定义v8时就给定默认值10。注意,