如何在PLSQL中访问数组

时间:2012-11-19 10:01:04

标签: sql oracle plsql

请问,是否可以访问varray中的单个值?

类似于newVariable := myArray(value2) - >这会将数组中的第二个值分配给新的变量...

我也需要这样的东西:

FOR CYCLE...
x++
newVariable(x) := myArray(value(x))
END FOR CYCLE 

有可能吗?

Thx,我是信息技术的学生,我正在努力解决这个问题。不知道在哪里看......

1 个答案:

答案 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