定义数组并使用循环添加值
Define array and add values using a loop
如何使用循环定义数组并向 VARRAY 添加值?
Declare
TYPE code_array IS VARRAY(this is changeable) OF VARCHAR2(10);
begin
FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
// How put i in code_array ? i is 1, 2 ...
END LOOP;
end;
需要此结果,例如:('1','2','3','4','5')
如果你声明了一个code_array
类型的局部变量,你可以这样做
Declare
TYPE code_array IS VARRAY(5) OF VARCHAR2(10);
l_codes code_array;
begin
FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
l_codes(i) := to_char(i);
END LOOP;
end;
但是,如果您从 1 迭代到 apex_application.g_f01.count
,这强烈暗示您要处理的元素数量在编译时是未知的。如果是这种情况,varray
几乎肯定是错误的集合类型(坦率地说,恕我直言,varray
基本上总是错误的集合类型)。使用嵌套 table 或关联数组
会更好
Declare
TYPE code_nt is table of varchar2(10);
l_codes code_nt := code_nt();
begin
FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
l_codes.extend;
l_codes(i) := to_char(i);
END LOOP;
end;
如何使用循环定义数组并向 VARRAY 添加值?
Declare
TYPE code_array IS VARRAY(this is changeable) OF VARCHAR2(10);
begin
FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
// How put i in code_array ? i is 1, 2 ...
END LOOP;
end;
需要此结果,例如:('1','2','3','4','5')
如果你声明了一个code_array
类型的局部变量,你可以这样做
Declare
TYPE code_array IS VARRAY(5) OF VARCHAR2(10);
l_codes code_array;
begin
FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
l_codes(i) := to_char(i);
END LOOP;
end;
但是,如果您从 1 迭代到 apex_application.g_f01.count
,这强烈暗示您要处理的元素数量在编译时是未知的。如果是这种情况,varray
几乎肯定是错误的集合类型(坦率地说,恕我直言,varray
基本上总是错误的集合类型)。使用嵌套 table 或关联数组
Declare
TYPE code_nt is table of varchar2(10);
l_codes code_nt := code_nt();
begin
FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
l_codes.extend;
l_codes(i) := to_char(i);
END LOOP;
end;