可变数组
最近更新时间: 2024-10-17 17:10:00
可变数组是一个其元素数可以从零(空)到声明的最大大小变化的数组。当创建可变数组时,必须指定可变数组的最大长度。
要访问varray变量的元素,请使用语法variable_name(index)。index的下限是1;上限是当前的元素数。
示例:
set enable_oracle_compatible=on;
--匿名块中使用varray,使用dbms_output 输出array中的数据
declare
type v_arr is varray(10) of varchar2(30);
my_arr v_arr:= v_arr('1','2','3');
begin
for i in 1..my_arr.count
loop
perform dbms_output.serveroutput('t');
perform dbms_output.put_line(my_arr[i]);
end loop;
end;
/
--初始化1个字符后,输出溢出值和正常值
declare
type v_arr is varray(3) of varchar2(30);
my_arr v_arr:= v_arr(null);
begin
my_arr[1]:='插入';
perform dbms_output.serveroutput('t');
perform DBMS_OUTPUT.PUT_LINE(my_arr[1]);
perform dbms_output.serveroutput(my_arr[2]);
exception WHEN others THEN
BEGIN
perform dbms_output.serveroutput('t');
perform DBMS_OUTPUT.PUT_LINE('error ...');
my_arr.extend;
perform DBMS_OUTPUT.PUT_LINE(my_arr[1]||'--'||my_arr[2]);
end;
end;
/
--输出溢出值
declare
type v_arr is varray(3) of varchar2(30);
my_arr v_arr:= v_arr(null);
begin
my_arr[4]:='插入';
perform DBMS_OUTPUT.PUT_LINE(my_arr[4]);
end;
/
declare
type v_arr is varray(3) of varchar2(30);
my_arr v_arr:= v_arr(null);
begin
my_arr[2]:='插入';
perform DBMS_OUTPUT.PUT_LINE(my_arr[2]);
end;
/
--验证nesttable 类型
declare
type dateArray is table of varchar2(10);
date_val dateArray:=dateArray('20201231','20200930');
begin
for i in 1 .. date_val.count loop
perform dbms_output.serveroutput('t');
perform dbms_output.put_line('结果:'||date_val[i]);
end loop;
end;
/