在oracle中加入游标或记录集

时间:2010-11-08 03:43:14

标签: sql oracle join cursor

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

问题: 有没有办法连接两个或多个游标,如逻辑表。

类似的东西:

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

2 个答案:

答案 0 :(得分: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中,由于读者不会阻止编写者(反之亦然),因此很少需要使用临时表。您通常只需使用适当的视图查询基础表,以提供适当的抽象级别。

答案 1 :(得分:0)

Oracle确实拥有自己的临时表版本(在事务或会话期间存储临时数据的永久结构) - 你可以考虑使用它们,尽管(正如Justin建议的那样)你也可以将这两个基础结合起来查询。