2012-07-27 88 views
-1

如果我有一個臨時表(10個字段)並且使用Stored proc(單個列的單個更新語句)更新它。在Oracle中更新臨時表數據

是否需要提交以獲取臨時表更新?將沒有提交工作正常嗎?

回答

-1

就這麼說 - 如果您沒有提交 - 只有您的會話將看到在任何時間點的變化。

3

如果它是一個真實的temporary table,它中的數據只會對您的會話可見,即使您提交了,也不會向其他任何人提交。如果on commit子句是preserve rows,那麼即使對你來說,提交也沒有什麼區別,但是如果是delete rows,那麼即使在你的會話中,你也會在commit之後丟失數據。

如果它不是一個真正的臨時表,那麼其中的數據將只對您的會話可見,直到您提交。不管調用你的過程(通常)會在同一個會話中,所以會看到數據的變化,通常調用者會決定是提交還是回滾 - 在一個過程中這通常不是一個好主意。