sql - 更新语句不适用于循环
问题描述
我需要人们的快速帮助。我有一个程序正在更新表中的一些记录。但是内部循环更新语句没有执行,尽管它正在获取游标中的记录。
我试图将 dbms_output.put_line 放在语句中,但它没有打印。
CURSOR cur_or
IS
SELECT DISTINCT c.general_ledger_gid,
b.order_release_gid --, c.cost_type
FROM invoice_shipment a,
view_shipment_order_release b,
shipment_cost c
WHERE a.shipment_gid = b.shipment_gid
AND c.shipment_gid = c.shipment_gid
AND a.shipment_gid = c.shipment_gid
AND a.invoice_gid = p_invoice_gid
AND c.general_ledger_gid IS NOT NULL;
CURSOR cur_orl (lv_ORDER_RELEASE_GID IN VARCHAR2)
IS
SELECT d.order_release_line_gid
FROM order_release_line d
WHERE order_release_gid = lv_ORDER_RELEASE_GID;
BEGIN
FOR rec_or IN cur_or
LOOP
UPDATE allocation_order_release_d
SET general_ledger_gid = rec_or.general_ledger_gid
WHERE general_ledger_gid IS NULL
AND order_release_gid = rec_or.order_release_gid;
dbms_output.put_line ('a Passed');
FOR rec_orl IN cur_orl (rec_or.order_release_gid)
LOOP
UPDATE allocation_or_line_d
SET general_ledger_gid = rec_or.general_ledger_gid
WHERE general_ledger_gid IS NULL
AND order_release_line_gid = rec_orl.order_release_line_gid;
dbms_output.put_line ('b Passed');
END LOOP;
dbms_output.put_line ('c Passed');
END LOOP;
dbms_output.put_line ('d Passed');
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
它应该在循环内运行更新语句,因为游标正在获取值
解决方案
推荐阅读
- java - 如何测试具有自动连线的无尽链的方法?
- service-worker - 服务工作者在更改和保存后不会反映更新 - 但比这更糟糕
- java - scdf 引发事务管理器冲突的自定义构建
- python - 叠加图像矩阵 Python
- alerts - 是否可以通过 Java API 创建 OpsGenie 事件(非警报)?
- html - 如何在一行但在不同的列中提出问题
- php - Laravel 更新/编辑遇到“404 NOT FOUND”
- linux - 如何配置 PostgreSQL 以接受特定的 IPV6 传入连接
- python - 键错误:'MLCLSTM'
- performance - 如何确定哪个处理器的性能最高