Oracle 12c PLSQL 合并错误

Posted

技术标签:

【中文标题】Oracle 12c PLSQL 合并错误【英文标题】:Oracle 12c PLSQL MERGE error 【发布时间】:2017-11-09 11:24:27 【问题描述】:

下面的代码 sn-p 来自我的一个更大的程序。当我在 TOAD 中手动执行此过程时,它可以正常工作,如我所料。

我现在正试图将它放入用户的表单中 - 但是当我尝试编译它时,我在 MERGE 行上收到以下错误: “在预期以下情况之一时遇到符号“INTO”: :=.(@%;"

MERGE INTO count_balance cb
USING (select location_code, product_code, closing_stock
       from trd_stock_closing ts
      where period = gen.add_periods(p_period, -1)
        and exists (select null
                      from ag_product_view
                     where product_code = ts.product_code
                       and group_code = 'Q')) cs
ON (cb.location_code = cs.location_code AND cb.product_code = cs.product_code)
WHEN MATCHED THEN 
UPDATE SET cb.opening_stock = cs.closing_stock
WHEN NOT MATCHED THEN
INSERT (location_code, product_code, opening_stock)
VALUES (cs.location_code, cs.product_code, cs.closing_stock);

有人可以建议吗?

【问题讨论】:

您可以尝试使用其架构完全限定所有表名。 【参考方案1】:

看起来您正在尝试使用旧的 Oracle*Forms,它根本不支持 MERGE 语句。尝试使用较新版本的 Forms 或将此代码包装到存储过程中。

【讨论】:

以上是关于Oracle 12c PLSQL 合并错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Oracle PLSQL 从动态选择的表中合并唯一值的更有效方法

Oracle PLSQL 无效游标错误我不明白

oracle11g和12c有啥区别?

oracle12C 创建用户却不能登录,01017错误

Oracle Database 12c 第 1 版 与Oracle Database 11g 第 2 版 有啥区别 啊!???

oracle填坑之PLSQL中文显示为问号