Oracle 12c PLSQL MERGE错误

时间:2017-11-09 11:24:28

标签: sql oracle oracle12c toad oracleforms

以下代码段来自我的更大程序。当我在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 个答案:

答案 0 :(得分:2)

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