5

我在sybase方面有很好的经验,并开始在空闲时间研究oracle。我使用过的大多数 sybase 过程都有临时表,连接两个或多个临时表以获得结果集是有意义的。

问题:有没有办法像逻辑表一样连接两个或多个游标。

就像是:

SELECT c1.id, 
       c2.name 
  FROM cursorEmp c1, 
       CursorDept c2 
 WHERE c1.DeptId = c2.DeptId
4

2 回答 2

8

你不能加入两个游标,不。

当然,您可以结合两个基础查询,即

SELECT c1.id,
       c2.name
  FROM (SELECT * FROM emp WHERE ename = 'KING') c1,
       (SELECT * FROM dept WHERE dname = 'ACCOUNTING') c2
 WHERE c1.DeptID = c2.DeptID

在 Oracle 中,由于读取器不会阻塞写入器(反之亦然),因此很少需要使用临时表。您通常只需使用适当的视图来查询基础表,以提供适当的抽象级别。

于 2010-11-08T04:00:32.573 回答
0

Oracle 确实有自己的临时表版本(在事务或会话期间存储临时数据的永久结构) - 您可以考虑使用它们,尽管(正如贾斯汀建议的那样)您也可以组合两个底层查询。

于 2010-11-08T12:18:16.590 回答