我正在尝试使用此语句更新bplustree表的深度列,这在MYSQL上运行正常,但在oracle上我有这样的错误:
122
错误报告 -
ORA-06550:第4行,第3栏:
PL / SQL:ORA-00933:SQL命令未正确结束
ORA-06550:第3行,第2栏:
PL / SQL:忽略SQL语句
06550. 00000 - "行%s,列%s:\ n%s"
*原因:通常是PL / SQL编译错误。
答案 0 :(得分:1)
您可以在update
的帮助下合并select
和merge
,如下所示:
MERGE INTO bplustree t1
USING
(
SELECT P.depth + 1 depth, p.node_id
FROM bplustree T INNER JOIN bplustree P
ON (T.parent_node_id = P.node_id)
WHERE P.depth >= 0 AND T.depth IS NULL
) t2
ON ( t1.node_id = t2.node_id )
WHEN MATCHED THEN UPDATE SET
t1.depth = t2.depth;