declare 
 type t_indexby is table of number
    index by binary_integer;
 type t_nesteed is table of number;
 type t_varray is varray(10) of number;
  
  v_indexby t_indexby;
  v_nested t_nested;
  v_varray t_varray;
begin 
  v_indexby(1):=1;
  v_indexby(2):=2;
  v_nested:=t_nested(1,2,3,4,5);
  v_varray:=t_varray(1,2);
 
end;另外帮忙解释下constraint 这个约束变量的作用。。例如constraint  classes_department_course primary key(department,course) 这个,怎么理解~?

解决方案 »

  1.   

    constraint是表示约束。在数据库的实体中建立一定的check的关系比如这个onstraint  classes_department_course primary key(department,course)
    就是建立了一个名字为classes_department_course的主键,主键列在department,course,也就是department,course组合在一起,不能在表里重复你上面的语句,是要是示范了Oracle里的数组的使用的常用方式
    table of number 
        index by binary_integer --是一种is table of number; ---是一种is varray(10) of number;  --是一种后面的句子是简单示范了三种数组的 实例话方式v_indexby(1):=1; 
    v_indexby(2):=2;  对1,2两个元素赋值v_nested:=t_nested(1,2,3,4,5);   -- 实例了一个含5个元素的数组,1,2,3,4,5是其中每个元素的值v_varray:=t_varray(1,2); --和上面一样,不过varray,定义以后就最大长度就不能扩增了,而table还可以
      

  2.   

    还是不太清楚
    v_indexby(1):=1; 
      v_indexby(2):=2; 
      v_nested:=t_nested(1,2,3,4,5); 
      v_varray:=t_varray(1,2); 
      

  3.   

     v_nested:=t_nested(1,2,3,4,5); 类似于
     v_nested:=t_nested();
     v_nested.extend;
     v_nested(1):=1;
     v_nested.extend;
     v_nested(2):=2;
     v_nested.extend;
     v_nested(3):=3;
    ....而v_indexby不需要extend,v_varray和v_nested一样,不过长度不能超过定义的长度。
      

  4.   

    准备在这个blog文里总结一下,
    http://blog.csdn.net/inthirties/archive/2009/07/31/4396051.aspx还没有写完.. 回来继续更新。