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