一:定义
变量:值可以改变的
常量:初始化后值不能改变
例子:
Declare
as_variable Varchar2(20);
cnt_variable Constant Varchar2(20) := 'cnt_variable';
Begin
as_variable := 'as_variable';
dbms_output.put_line(as_variable);
as_variable := 'as_variable_2';
dbms_output.put_line(as_variable);
dbms_output.put_line(cnt_variable);
End;
结果:
as_variable
as_variable_2
cnt_variable
二:类型
a,标量类型变量:单一类型,不存在组合
b,复合类型变量:单一类型组合而成的一个结构体
c,引用类型变量:使用一个其他数据项的引用
a,标量类型
1 ,类型:数值number,字符varchar2,布尔true/false/null,日期datetime
%type:利用已存在的数据类型来定义新数据的数据类型。
2,%type的好处 :被引用的变量或是常量的数据类型改变,则引用者的类型自动改变
保证语句块中变量的数据类型和表中的数据类型一致. 例:typePercent tabName.colName%type;
b,复合类型变量
1,类型 pl/sql 记录类型(record / %rowtype)
pl/sql 索引表类型 (数字键值 / 字符串键值)
Varray变长数组 一个存储有限有序元素的集合(下标从1开始)
DECLARE
TYPE NormalTemperature IS VARRAY(20) OF VARCHAR2(50);
vayNormalTemperature NormalTemperature := NormalTemperature('3000', '4000', '5000');
BEGIN
FOR i IN 1 .. vayNormalTemperature.count LOOP
dbms_output.put_line(vayNormalTemperature(i));
END LOOP;
END;