我有一个流水线表函数可以正常工作。
我现在需要的是在此函数中执行更新查询:
MATCH (n:User), (n)-[:connected_to*1..2 {status: 1}]-(sp:User),
(sp)<-[:owner_of|house_mate]-(place:Place)
WHERE (ID(n) = {ID_n})
AND NOT(n)<-[:owner_of|house_mate]-(place)
MATCH (place)-[tenant:owner_of|house_mate]->(u:User)
WITH DISTINCT place,
type(tenant) AS type,
u,
CASE
WHEN (n)-[:connected_to {status: 1}]-(u) THEN '1'
WHEN (n)-[:connected_to*1..2 {status: 1}]-(u) THEN '2'
ELSE '3'
END AS connection
WITH place,
collect({type: type, u: u, connection: connection}) AS tenants
RETURN place,
[tenant IN tenants WHERE tenant.type = 'owner_of' | [tenant.u, tenant.connection]][0] AS owner_array,
[tenant IN tenants WHERE tenant.type = 'house_mate' | [tenant.u, tenant.connection]] AS house_mates_array
当我运行此查询时:
SELECT * from TABLE(试验(&#39; 123&#39))
我收到此错误:
ORA-14551:无法在查询中执行DML操作
所以很清楚,无法在此处添加更新查询,那么如何执行更新呢?
感谢任何帮助。
答案 0 :(得分:0)
尝试添加
pragma autonomous_transaction;
到您的函数并使用动态SQL进行更新。