sql - 需要将此mysql更新脚本转换为oracle脚本
问题描述
我有一个在 MySQL 中运行良好的查询,但是当我在 Oracle 上运行它时出现以下错误:
SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
查询是:
update branch_policy bp
join (select
po.id as old_id,
pn.new_id
from policy po
join (
select
policy_number,
provider_id,
min(id) as new_id
from policy
group by policy_number, provider_id) as pn
on po.policy_number = pn.policy_number
and po.provider_id = pn.provider_id) as p
on bp.policy_id = p.old_id
set bp.policy_id = p.new_id
;
解决方案
这会有帮助吗?
update branch_policy bp set
bp.policy_id = (select pn.new_id
from (select policy_number, provider_id, nin(id) new_id
from policy
group by policy_number, provider_id
) pn join policy po on po.policy_number = pn.policy_number
and po.provider_id = pn.provider_id
)
where bp.policy_id in (select po.id
from (select policy_number, provider_id, nin(id) new_id
from policy
group by policy_number, provider_id
) pn join policy po on po.policy_number = pn.policy_number
and po.provider_id = pn.provider_id
);
推荐阅读
- dmn - 是否已经有一个开源的 Java 库,并且可以通过 Maven 实现 FEEL 语言?
- python - 如何设计这些 django 模型之间的关系?
- ksqldb - 在 KSQLDB 中追加结构数组
- wso2-am - WSO2 Analytics 2.6 历史保留问题
- android - 如何更改设置菜单中显示的安卓应用程序的名称?
- python - 无法 pipinstall pytest-flask 作为开发依赖项
- wordpress - 如何使背景图像加载更快
- mysql - 在 MySQL 或 MariaDB 中淡入淡出两个或多个字符串
- c# - C# 应用程序和 dll 无法注册的问题
- android - 无法在 Play 商店禁用重新订阅 Android 订阅