如何在PL/SQL中处理临时查询结果
我将很快描述。 有一列如何在PL/SQL中处理临时查询结果,sql,plsql,oracle11g,Sql,Plsql,Oracle11g,我将很快描述。 有一列DestinationId 和列HierarchyNodeId 目前,一个DestinationId有多个层次结构节点ID。 我有一个查询,它给出了我想要保留的每个DestinationId和HierarchyNodeId。 因此,我想将与每个DestinationId关联的每个其他HierarchyNodeId替换为我从上面的查询中得到的 我通过查询创建了一个循环。所以每个循环周期我都有一个特定的DestinationId(cursor.“DestinationId”和一
DestinationId
和列HierarchyNodeId
目前,一个DestinationId有多个层次结构节点ID。
我有一个查询,它给出了我想要保留的每个DestinationId和HierarchyNodeId。
因此,我想将与每个DestinationId关联的每个其他HierarchyNodeId替换为我从上面的查询中得到的
UPDATE table1
SET table1."HierarchyNodeId"=cursor."HierarchyNodeId"
WHERE table1."HierarchyNodeId" IN (queryfromstep3)
)
然后我会有一个问题,因为当我进行第一次更新时,来自步骤3的查询结果会发生变化
所以我想在每个循环开始时将查询结果从Step3存储到一个临时表中
这在PL/SQL中可能吗?非常感谢
编辑:
下面是我要存储到临时数据库中的查询
SELECT "HierarchyNodeId" FROM
(
Select t1."Counter", t2.* From
(SELECT "HierarchyNodeId", (SELECT "Description"
FROM "Destination"
WHERE "DestinationId" = hn."DestinationId") "Description", "DestinationId",
(SELECT "DestinationTypeId"
FROM "Destination"
WHERE "DestinationId" = hn."DestinationId") "DestinationTypeId"
FROM "HierarchyNode" hn
WHERE "DestinationId" IN (SELECT "DestinationId" From(SELECT COUNT ("HierarchyNodeId"), "DestinationId" FROM "HierarchyNode" GROUP BY "DestinationId" HAVING COUNT ("HierarchyNodeId") > 1))) t2,
(select COUNT (*) "Counter", "HierarchyNodeId" From "HierarchyDetail"
Group By "HierarchyNodeId") t1
Where t1."HierarchyNodeId" = t2."HierarchyNodeId"
AND t2."DestinationId" = cur."DestinationId"
AND t2."HierarchyNodeId" != cur."HierarchyNodeId"
ORDER BY "DestinationId", "Counter" Desc
)
它基本上生成一个带有guid的列。
但是,在我进行第一次更新之后,其中一些guid将发生更改。为了避免这种情况,我希望在每个循环开始时将其存储到临时表中。查看Oracle全局临时表:您能给我们一些数据样本和您想要的结果吗?@a.B.Cade我将添加查询,但无需通过证明更多数据来加重问题。我只是想知道是否可以将Select查询的结果存储到临时表中。然后删除该临时表并重新开始(每次循环循环时)@a_horse_,其名称完全相同!:)@一匹没有名字的马等等什么?你问我这是否是一个程序,我说是的。我正在创建一个过程,这就是我使用pl/sql的原因。这是用于创建Oracle过程的语言。。。但是,如果您觉得不应该这样做,请随时重新标记它……这似乎是临时表的使用方法。谢谢