我在sybase方面有很好的经验,并且在空闲时间开始研究oracle。 我使用的大多数sybase过程都有临时表,加入两个或多个临时表得到结果集是有意义的。
问题: 有没有办法连接两个或多个游标,如逻辑表。
类似的东西:
SELECT c1.id,
c2.name
FROM cursorEmp c1,
CursorDept c2
WHERE c1.DeptId = c2.DeptId
答案 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建议的那样)你也可以将这两个基础结合起来查询。