似乎找不到循环遍历 PL/SQL 数组的方法?
Posted
技术标签:
【中文标题】似乎找不到循环遍历 PL/SQL 数组的方法?【英文标题】:Can't seem to find a way to loop through a PL/SQL array? 【发布时间】:2012-03-22 17:38:23 【问题描述】:我正在尝试这样做:
arrCauses := APEX_UTIL.STRING_TO_TABLE(:P1_CAUSE);
FOR c IN 1..arrCauses.count LOOP
INSERT INTO DT_EVENT_CAUSE (
EVENT_ID,
CAUSE_ID)
VALUES (
nextPK, c);
END LOOP;
或者这个
arrCauses := APEX_UTIL.STRING_TO_TABLE(:P1_CAUSE);
FOR c IN arrCauses.first..arrCauses.last LOOP
INSERT INTO DT_EVENT_CAUSE (
EVENT_ID,
CAUSE_ID)
VALUES (
nextPK, c);
END LOOP;
问题是...c 始终只是计数,因此如果数组是 1 项,则将插入 1 的 c。如果数组有 3 个项目,则将插入 1、2 和 3 的 c。与数组中的实际值相反。我做错了什么?!
【问题讨论】:
【参考方案1】:使用索引检索数组中的值:
VALUES (
nextPK, arrCauses(c));
而不是
VALUES (
nextPK, c);
;)
【讨论】:
以上是关于似乎找不到循环遍历 PL/SQL 数组的方法?的主要内容,如果未能解决你的问题,请参考以下文章