xGss2000 发表于 2011-12-23 01:15

[原创]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&gt; set serveroutput on size 10000;</li><li>
SQL&gt; </li><li>
SQL&gt; 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]
查看完整版本: [原创]oracle PLSQL INDEX BY Binary_Integer 测试