似乎找不到循环PL/SQL数组的方法?

ant*_*pug 2 sql database plsql

我想这样做:

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;
Run Code Online (Sandbox Code Playgroud)

或这个

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;
Run Code Online (Sandbox Code Playgroud)

问题是... c总是只是计数,所以如果数组是1项,则会插入1的ac.如果数组中有3个项目,则将插入c的1,2和3.与数组中的实际值相反.我究竟做错了什么?!

Fra*_*s P 10

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

 VALUES (
 nextPK, arrCauses(c));
Run Code Online (Sandbox Code Playgroud)

代替

 VALUES (
 nextPK, c);
Run Code Online (Sandbox Code Playgroud)

;)