小编典典

似乎找不到找到遍历PL / SQL数组的方法?

sql

我正在尝试这样做:

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,则将插入ac为1。如果该数组包含3个项目,则将插入1、2和3的c。与数组中的实际值相反。我究竟做错了什么?!


阅读 241

收藏
2021-04-28

共1个答案

小编典典

使用索引来检索数组中的值:

 VALUES (
 nextPK, arrCauses(c));

代替

 VALUES (
 nextPK, c);

;)

2021-04-28