前言: 使用变量可以保存计算机需要处理的数据,为了给该变量分配适当的内存空间,还需要指定数据类型,有的数据类型还需要指定长度,如字符串。 有些类型可以用于建表(如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。注 意 ,number类型变量的默认值不是0,而是NULL。 v9 number not null := 1000.50; 说明:定义v9变量不能为空,此时必须给出一个不为NULL的值。在运行时发现v9为NULL,则报错:说明为 NOT NULL 的变量必须有初始化赋值。 预测各打印结果,如果代码有错误请先改正: declare v1 char; v2 varchar2(10); v3 number; v4 number(5); v5 number(5,2); v6 date; v7 number default 10; begin v1:='ab'; v2:='abcd'; v4:=9998.99; v5:=1000.5555555; v6:=to_date('2002-10-2','yyyy-mm-dd'); dbms_output.put_line(v1); dbms_ou...