如何在PLSQL中访问数组

Fir*_*tex 1 sql oracle plsql

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

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

我还需要这样的东西:

FOR CYCLE...
x++
newVariable(x) := myArray(value(x))
END FOR CYCLE 
Run Code Online (Sandbox Code Playgroud)

是否可以?

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

dar*_*osh 5

根据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;
/
Run Code Online (Sandbox Code Playgroud)

有关 varray 的更多信息,您可以参考以下链接:

http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/composites.htm#CHDEIJHD

问候,

达里约什