【发布时间】:2020-02-21 19:33:17
【问题描述】:
我有一个像队列一样使用的 SQL 表,其中一个列作为 XMLType。我试图对表做的是创建一个程序来获取数据的特定部分,遍历表,读取信息,然后在我完成后删除行。完成后我不能只清除整个表,因为并非所有数据都需要删除。
我目前的解决方案:
FOR xml_data FROM (SELECT xml_column from table_a)
LOOP
-- Process the data
...
--- Delete the row
DELETE FROM table_a where xml_column = xml_data.xml_column;
END LOOP;
但是,我遇到了删除部分引发错误的问题:
Error report -
ORA-22950: cannot ORDER objects with MAP or ORDER method
...
Action: Define a MAP or ORDER method for the object type
有谁知道这个问题的解决方案是什么?我也对其他解决方案持开放态度,可以在迭代后删除一行。
编辑:修复代码
【问题讨论】:
-
我做了一些小的改动,但这几乎是最低限度的。我的问题几乎可以归结为“你如何比较 XMLTypes?”