请问,是否可以访问varray中的单个值?
类似于newVariable := myArray(value2)
- >这会将数组中的第二个值分配给新的变量...
我也需要这样的东西:
FOR CYCLE...
x++
newVariable(x) := myArray(value(x))
END FOR CYCLE
有可能吗?
Thx,我是信息技术的学生,我正在努力解决这个问题。不知道在哪里看......
答案 0 :(得分:4)
根据oracle在线文档,varray类型是用于创建类似对象的数组的PL / SQL中的其他集合类型的类型(我的意思是数组,因为我们在其他经典编程语言中理解它,如C,Java等)。除了长度可以从0变为其定义期间指定的最大大小。
以下是一个例子:
DECLARE
SUBTYPE country_ty IS VARCHAR2(50);
TYPE countries_varr_ty IS VARRAY(10) OF country_ty;
l_varr_countries countries_varr_ty :=
countries_varr_ty
(
'Iran', 'France', 'United Kingdom', 'United States', 'Germany',
'Spain', 'Canada', 'Australia', 'South Africa', 'Afganistan'
);
l_country country_ty;
BEGIN
FOR counter IN l_varr_countries.FIRST .. l_varr_countries.LAST
LOOP
l_country := l_varr_countries(counter);
DBMS_OUTPUT.PUT_LINE('The current value in the array is: '
|| l_country);
END LOOP;
END;
/
有关varrays的更多信息,请参阅以下链接:
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/composites.htm#CHDEIJHD
此致
Dariyoosh