2012-07-27 69 views
-1

如果我有一个临时表(10个字段)并且使用Stored proc(单个列的单个更新语句)更新它。在Oracle中更新临时表数据

是否需要提交以获取临时表更新?将没有提交工作正常吗?

回答

-1

就这么说 - 如果您没有提交 - 只有您的会话将看到在任何时间点的变化。

3

如果它是一个真实的temporary table,它中的数据只会对您的会话可见,即使您提交了,也不会向其他任何人提交。如果on commit子句是preserve rows,那么即使对你来说,提交也没有什么区别,但是如果是delete rows,那么即使在你的会话中,你也会在commit之后丢失数据。

如果它不是一个真正的临时表,那么其中的数据将只对您的会话可见,直到您提交。不管调用你的过程(通常)会在同一个会话中,所以会看到数据的变化,通常调用者会决定是提交还是回滚 - 在一个过程中这通常不是一个好主意。