oracle pl/sql 数组使用
pl/sql 有三种数组类型,到现在为止只用过叫“关联数组集合类型”的数组。
一、定义类型
type <我们自己的数组类型的名字> is table of <datatype>[not null] index by index_type;
其中 datatype是必须的。index by index_type 可以省略。如:
-- Public type declarations -- TYPE < TYPENAME > IS < DATATYPE >; TYPE SEQID_AAT IS TABLE OF D_INV_ALARM_SEQ.SEQ_ID%TYPE INDEX BY BINARY_INTEGER;
BEFORE_FIRST_TAB SEQID_AAT; --声明一个数组 SELECT A.SEQ_ID BULK COLLECT BULK COLLECT INTO BEFORE_FIRST_TAB FROM D_INV_ALARM_SEQ A WHERE A.SEQ_NUM < V_SEQ_NUM;
FOR SEQ_INDEX IN 1 .. BEFORE_FIRST_TAB.COUNT LOOP UPDATE D_INV_ALARM_SEQ A SET A.SEQ_NUM = A.SEQ_NUM + IN_LENGTH WHERE A.SEQ_ID = BEFORE_FIRST_TAB(SEQ_INDEX); END LOOP;