需要使用 db link 从另一个数据库更新数据
Need to update data from another database using db link
我在 BI 数据库中有一个 table A,日期为空 (CREATED_ON_DT
)。我需要使用 DB link mtl_system_items_b@afldev
更新来自 AFLDEV DB 的正确日期的那些空值。公共键在 AFLDEV 中是 inventory_item_id
,在 BI DB 中是 integration_id
。我设计了以下查询但它不起作用:
UPDATE w_product_d
SET w_product_d.CREATED_ON_DT = (SELECT min(creation_date)
FROM mtl_system_items_b@afldev B
where to_char(B.inventory_item_id)=w_product_d.integration_id
and B.organization_id = '102'
AND w_product_d.CREATED_ON_DT IS NULL
and w_product_d.integration_id in (SELECT T.integration_id
FROM (SELECT * FROM w_product_d ORDER BY w_product_d.integration_id )T
WHERE T.CREATED_ON_DT IS NULL)
);
如果我 运行 此查询会将所有日期更新为空值,但我需要相反的情况发生,即用正确的日期替换空值。
请帮我解决这个问题!我正在 SQL Developer for Oracle DB 上执行此操作。
我认为您已经将要更新的行和用于更新列值的行联系在一起了。
如果您考虑一下,您想要更新 w_product_d table 中 created_on_dt 为空的行,这意味着您的更新语句将有一个基本的结构:
update w_product_d wpd
set ...
where wpd.created_on_dt is null;
一旦你有了它,就可以很容易地插入你正在更新的列以及你正在更新它的内容:
update w_product_d wpd
set wpd.created_on_dt = (select min(creation_date)
from mtl_system_items_b@afldev b
where to_char(b.inventory_item_id) = wpd.integration_id)
where wpd.created_on_dt is null;
我在 BI 数据库中有一个 table A,日期为空 (CREATED_ON_DT
)。我需要使用 DB link mtl_system_items_b@afldev
更新来自 AFLDEV DB 的正确日期的那些空值。公共键在 AFLDEV 中是 inventory_item_id
,在 BI DB 中是 integration_id
。我设计了以下查询但它不起作用:
UPDATE w_product_d
SET w_product_d.CREATED_ON_DT = (SELECT min(creation_date)
FROM mtl_system_items_b@afldev B
where to_char(B.inventory_item_id)=w_product_d.integration_id
and B.organization_id = '102'
AND w_product_d.CREATED_ON_DT IS NULL
and w_product_d.integration_id in (SELECT T.integration_id
FROM (SELECT * FROM w_product_d ORDER BY w_product_d.integration_id )T
WHERE T.CREATED_ON_DT IS NULL)
);
如果我 运行 此查询会将所有日期更新为空值,但我需要相反的情况发生,即用正确的日期替换空值。
请帮我解决这个问题!我正在 SQL Developer for Oracle DB 上执行此操作。
我认为您已经将要更新的行和用于更新列值的行联系在一起了。
如果您考虑一下,您想要更新 w_product_d table 中 created_on_dt 为空的行,这意味着您的更新语句将有一个基本的结构:
update w_product_d wpd
set ...
where wpd.created_on_dt is null;
一旦你有了它,就可以很容易地插入你正在更新的列以及你正在更新它的内容:
update w_product_d wpd
set wpd.created_on_dt = (select min(creation_date)
from mtl_system_items_b@afldev b
where to_char(b.inventory_item_id) = wpd.integration_id)
where wpd.created_on_dt is null;