如图,举个例子说明:
type test_table is table of varchar2(10) index by binary_integer;
instance_table test_table;
v_test1 varchar2(20);
v_test2 varchar2(20);
begin
     instance_table(1) := 'first';
     instance_table(2) := 'first';
     v_test1 := instance_table(1);
     v_test2 := instance_table; ?? --这里instance_table要怎么用?
......
请问,变量instance_table除了可以这样来引用instance_table(1) := '***';
其本身代表什么,instance_table ??

解决方案 »

  1.   

    type test_table is table of varchar2(10) index by binary_integer; 这一句定义相当于定义一个数组类型,类型C语言中的typedef的作用
    test_table就相当于varchar2(10)[]instance_table test_table; 
    定义test_table类型的变量这样定义后,instance_table就是一个可变长的一维数组了
    刚开始instance_table.count=0
    当你
    instance_table(1) := 'first'; 
    instance_table(2) := 'first'; 这样一个个赋值后instance_table.count会动态增加,从而标志数组长度大致就这样了,至于你程序中提到的那句,按逻辑应该是这样的:
    v_test2 := instance_table(2);
      

  2.   

    谢谢 xuehu007 的关注
    说道类似c语言中的数组类型,那么在c中,定义好的一个数组,比如int int_array = {1,1,1,1,1}
    是不是 int_array = int_array[0] = 1 呢,如果是这样
    那么,我想知道oracle中的test_table = test_table[0] 吗?或者其他什么意思?