作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
加INDEX BY PLS_INTEGER
有什么区别而不是在新表类型声明的末尾。看这个例子:
DECLARE
GC_BULK_LIMIT CONSTANT INTEGER := 500;
CURSOR CUR_CLIENTS IS SELECT C.ID, C.NAME FROM CLIENTS C;
TYPE RT_CLIENTS IS TABLE OF CUR_CLIENTS%ROWTYPE;
-- TYPE RT_CLIENTS IS TABLE OF CUR_CLIENTS%ROWTYPE INDEX BY PLS_INTEGER;
LT_CLIENTS RT_CLIENTS;
BEGIN
OPEN CUR_CLIENTS;
LOOP
FETCH CUR_CLIENTS BULK COLLECT INTO LT_CLIENTS LIMIT GC_BULK_LIMIT;
EXIT WHEN LT_CLIENTS.COUNT = 0;
FOR I IN 1..LT_CLIENTS.COUNT LOOP
-- ... SOME LOGIC
END LOOP;
END LOOP;
CLOSE CUR_CLIENTS;
END;
最佳答案
回应“我必须添加”。最简洁的答案是不。
不同之处在于
TYPE RT_CLIENTS IS TABLE OF CUR_CLIENTS%ROWTYPE;
FOR I IN 1..LT_CLIENTS.COUNT LOOP
TYPE RT_CLIENTS IS TABLE OF CUR_CLIENTS%ROWTYPE INDEX BY PLS_INTEGER;
varchar2
索引)。不同之处在于,这种情况下的下标不必是连续的,具体取决于数组的填充方式。在您的代码中,它们将是(因为批量收集会这样做),但情况并非总是如此。
index by
数组是:
v_subscript := t_arr.first;
while v_subscript is not null loop
dbms_output.put_line(v_subscript || ': ' || t_arr(v_subscript));
v_subscript := t_arr.next(v_subscript);
end loop;
v_subscript
是与
index by
相同数据类型的变量部分。
declare
type myarr is table of number;
t_arr myarr;
v_subscript number;
begin
t_arr := myarr(1, 12, 44);
t_arr(1):= 1;
t_arr(2):= 12;
t_arr(3):= 44;
index by
完全没问题。
关于plsql - Oracle 11g : When declaring new TYPE as TABLE, 我必须添加 "INDEX BY PLS_INTEGER"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14355174/
我是一名优秀的程序员,十分优秀!