表类型变量和数组,很相似,实质都是变长的,只是指定的最大数目TYPE nested_type IS TABLE OF VARCHAR2(20); TYPE varray_type IS VARRAY(50) OF INTEGER;他们的方法也是一样的 EXISTS COUNT LIMIT FIRST and LAST PRIOR and NEXT EXTEND TRIM DELETE遍历形式如: FOR i IN 1..vs.COUNT LOOP ... i := vs.FIRST; WHILE i IS NOT NULL LOOP ...... i := vs.NEXT(i); END LOOP;
yaozw_mountain(山林)数组是定长的阿TYPE varray_type IS VARRAY(50) OF INTEGER; 长度不就是固定了50么 好像不能是变长啊
我的待插入表t的数据是一个链表(不定长),链表的每一项为结构T,这样的存储
过程怎样写呢?我希望以此插入全部的数据,要求速度很快!我现在是每循环一条记录,调用以此存储过程,插入一条,这样是不是效率不高啊?谢谢
TYPE varray_type IS VARRAY(50) OF INTEGER;他们的方法也是一样的
EXISTS
COUNT
LIMIT
FIRST and LAST
PRIOR and NEXT
EXTEND
TRIM
DELETE遍历形式如:
FOR i IN 1..vs.COUNT LOOP ...
i := vs.FIRST;
WHILE i IS NOT NULL LOOP
...... i := vs.NEXT(i);
END LOOP;
长度不就是固定了50么
好像不能是变长啊
实际上,还是需要用一个extend一个的
数目基本是不固定的,可以使2,也可以是几千,甚至几万
那着后台的数组数目不是要很大很大(即使没用上)
这也太不好了
一般包含很多条记录,可不可以在存储过程中按格式解开并解释一起入库呢?谢谢是不是需要在全部插入完成后再commit呢?
--如果想全部成功or全部不成功
那就完成后加commit