在oracle中加入游标或记录集

Sha*_* Al 4 sql oracle join cursor

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

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

就像是:

SELECT c1.id, 
       c2.name 
  FROM cursorEmp c1, 
       CursorDept c2 
 WHERE c1.DeptId = c2.DeptId
Run Code Online (Sandbox Code Playgroud)

Jus*_*ave 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
Run Code Online (Sandbox Code Playgroud)

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

  • SELECT不会进行任何锁定(除非你执行SELECT ... FOR UPDATE).要停止选择读取未提交的更改,它会使用类似时间戳(SCN)的内容,并在锁定之前查找该行的历史副本. (5认同)