- 论坛徽章:
- 0
|
- SQL> set serveroutput on size 10000;
-
SQL>
-
SQL> DECLARE
-
2 TYPE t_list_1 IS TABLE OF VARCHAR2(1024) ; -- 非标号,需要动态初始化,动态extend
-
3 TYPE t_list_2 IS TABLE OF VARCHAR2(1024) INDEX BY Binary_Integer; -- 标号数组,不需要动态申请
-
4
-
5 -- 非标号数组
-
6 v_list_11 t_list_1 := t_list_1('11A','11B'); -- 声明时赋初值
-
7 v_list_12 t_list_1 ;
-
8
-
9 -- 标号数组
-
10 v_list_21 t_list_2 ;
-
11
-
12 /* 标号数组声明不能赋初值
-
13 v_list_21 t_list_2 := t_list_2('A','B');
-
14 */
-
15 BEGIN
-
16 dbms_output.put_line(v_list_11(1));
-
17
-
18 /* 报错,需要初始化
-
19 v_list_12(1):='1A';
-
20 */
-
21
-
22 -- 初始化
-
23 v_list_12 := t_list_1();
-
24 v_list_12.extend;
-
25 v_list_12(1) :='12A';
-
26 dbms_output.put_line(v_list_12(1));
-
27
-
28 -- 标号数组不需要初始化,下标从1开始
-
29 v_list_21(1) :='21A';
-
30 dbms_output.put_line(v_list_21(1));
-
31 -- 并且可以指定下标赋值
-
32 v_list_21(100) :='2100A';
-
33 dbms_output.put_line(v_list_21(100));
-
34 dbms_output.put_line(v_list_21.count);
-
35
-
36 END
-
37 ;
-
38 /
-
-
11A
-
12A
-
21A
-
2100A
-
2
-
-
PL/SQL procedure successfully completed
|
|