Examine this command:

SQL> CREATE GLOBAL TEMPORARY TABLE report_work_area

(startdate DATE,

enddate DATE,

class CHAR(20)) ON COMMIT PRESERVE ROWS;

Which three statements are true about rows inserted into REPORT_WORK_AREA?

A)Rows will be lost if a ROLLBACK is done.

B)Rows will be lost upon session failure.

C)Rows are visible to all sessions logged in by the same user until the session that inserted the rows terminates.

D)Rows are visible to all sessions logged in by all users granted the DBA role until the session that inserted the rows terminates.

E)Rows will be lost upon session normal termination.

F)Rows are visible globally to all sessions logged in by any user until the session that inserted the rows terminates.

Answer: ABE

赵:

on commit delete rows,事务提交时自动删除临时表中的记录。

on commit preserve rows,当用户退出 session 时(会话结束后)自动清除临时表的数据。

前者在事务提交后数据就已经清除了.后者在会话中止时或者正 s 常退出时数据都会被清除掉.

CDF 错,Temporary Table 的数据存放在 PGA 或临时表空间下,它被每个 session 单独使用,即隔离session 间的数据,每个 session 只能看到自己的数据。