type tb_rd_atom is table of rd_atom_type index by binary_integer;这个句型什么意思?这个知识点是ORACLE哪章的阿?谢谢各位了

解决方案 »

  1.   

    集合类型。有三种、索引表、嵌套表、可变数组。
    你的语句声明的是一个索引表类型,相当于其它高级语言中的数组。
    声明格式:
    type <类型名> is table of <元素类型> index by <下标类型>;
    SQL> SET SERVEROUTPUT ON;
    SQL> 
    SQL> 
    SQL> DECLARE
      2    --声明一个索引表类型t_arr
      3    TYPE t_arr IS TABLE OF VARCHAR(10) INDEX BY PLS_INTEGER;
      4    --声明一个t_arr变量
      5    v_arr t_arr;
      6  BEGIN
      7    --循环给v_arr各元素赋值
      8    FOR i IN 1 .. 10 LOOP
      9      v_arr(i) := 'element:' || i;
     10    END LOOP;
     11  
     12    --循环输出v_arr各元素的值
     13    FOR i IN 1 .. v_arr.count LOOP
     14      dbms_output.put_line(v_arr(i));
     15    END LOOP;
     16  END;
     17  /
    element:1
    element:2
    element:3
    element:4
    element:5
    element:6
    element:7
    element:8
    element:9
    element:10PL/SQL 过程已成功完成。SQL> 
      

  2.   

     TYPE t_arr IS TABLE OF VARCHAR(10) INDEX BY PLS_INTEGER;
    这是一个集合数组,数组的元素在后面定义给出,
    相当与c++里面的动态数组,定义时不限制其长度,在初始化时才为其赋值。
    需要注意的是,oracle里面的集合数组的下标是从1开始的,而c++,java,c#里面的数组下标都是从0开始的
      

  3.   

    这是PL/SQL中的一个复合变量类型,记录表类型。一个记录表类型变量可以存储查询语句返回的多行数据,可以理解为Java等程序设计语言中的单行数组。
    淡然你也可以为其赋值:如:
    Declare
    TYPE T_ARRAY IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
    begin
    TGT_TBL(1) := 'A';
    TGT_TBL(2) := 'B';
    TGT_TBL(3) := 'C';[code=SQL]
    ...
    ...
    end;[/code还有另一种复合变量,叫记录类型]
    type record_name is RECORD(field1 data_type,
    ....)
    是用来返回一行多列的数据的。
    详细参考PL/SQL 复合变量 的内容
      

  4.   

    http://tech.sina.com.cn/roll/2008-12-26/1937936127.shtml