Xophmeister Asked: 2013-04-25 05:47:42 +0800 CST2013-04-25 05:47:42 +0800 CST 2013-04-25 05:47:42 +0800 CST 显式游标获取的数据在 PL/SQL 中是否不可变? 772 这似乎是一个显而易见的问题,但谷歌搜索到目前为止让我失望了...... 假设我有一个描述我需要应用的更新的视图,为此,我有一个 SP 将视图作为游标打开,遍历每一行并进行适当的更改。问题是,SP 所做的更新将改变视图的内容(例如,一旦处理了不一致,该行将从视图中消失)。 这会反映在打开的游标中(在 SP 中),还是在首次打开时它获取的数据是固定的? 我读到的内容表明游标数据在打开后是不可变的——这很好——但是,我还没有找到直接的答案。 oracle plsql 1 个回答 Voted Best Answer Justin Cave 2013-04-25T05:53:53+08:002013-04-25T05:53:53+08:00 Oracle 将提供数据的读取一致性视图。假设您使用默认事务隔离级别 read committed,则查询将返回的数据固定在游标打开的时间点(无论游标是隐式的还是显式的都无关紧要)。 唯一的例外是查询调用的 PL/SQL(即存储的函数)将看到在调用函数的时间点存在的数据,而不是在游标打开的时间点。
Oracle 将提供数据的读取一致性视图。假设您使用默认事务隔离级别 read committed,则查询将返回的数据固定在游标打开的时间点(无论游标是隐式的还是显式的都无关紧要)。
唯一的例外是查询调用的 PL/SQL(即存储的函数)将看到在调用函数的时间点存在的数据,而不是在游标打开的时间点。