【问题标题】:EXECUTE IMMEDIATE in FORALL statement在 FORALL 语句中立即执行
【发布时间】:2014-04-03 22:20:31
【问题描述】:

我正在尝试以下方法

FORALL l_loop_cntr IN 1..l_count
EXECUTE IMMEDIATE ' INSERT INTO ' ||c_table || ' VALUES l_NE_BILL_REPORTS_table (:1) ' USING
l_loop_cntr;

我的表名是动态的。

但它给出了错误 PROCEDURE PL_OWNER.TEST_BULK 的编译错误

错误:PLS-00435:没有 BULK In-BIND 的 DML 语句不能在 FORALL 中使用 线路:27 文本:立即执行'插入到'||c_table || ' VALUES l_NE_BILL_REPORTS_table (:1) ' 使用 l_loop_cntr;

【问题讨论】:

    标签: oracle11g


    【解决方案1】:

    您需要在using 子句中引用该集合;索引本身并不意味着什么。您尚未显示该集合的名称,因此请用您的实际名称替换 col;我假设l_countcol.last 相同:

    FORALL l_loop_cntr IN my_col.first..my_col.last
      EXECUTE IMMEDIATE 'INSERT INTO ' || c_table
        || ' VALUES l_NE_BILL_REPORTS_table (:1)'
      USING my_col(l_loop_cntr);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多