【问题标题】:Can't seem to find a way to loop through a PL/SQL array?似乎找不到循环遍历 PL/SQL 数组的方法?
【发布时间】: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。与数组中的实际值相反。我做错了什么?!

【问题讨论】:

    标签: sql database plsql


    【解决方案1】:

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

     VALUES (
     nextPK, arrCauses(c));
    

    而不是

     VALUES (
     nextPK, c);
    

    ;)

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 2021-07-30
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多