Ste*_*bbi 1 oracle temp-tables oracle11g
如何检查Oracle临时表是否存在?当我知道它存在时,我在查询ALL_TABLES或USER_TABLES时看不到该表.
另外,为了确保我理解临时表,如果使用ON COMMIT DELETE ROWS创建,表将始终存在,但会话结束时数据将被删除?会话是指连接何时关闭?
USER_TABLES如果您拥有临时表,则会列出临时表,ALL_TABLES如果您拥有该表的权限,则会列出.DBA_TABLES如果它存在于数据库中,它将被列出,但您可能没有查询权限DBA_TABLES.如果表存在于数据库中但不存在ALL_TABLES,则表示当前用户没有临时表的权限.
是的,临时表将始终存在(当然,一旦创建它).指定时ON COMMIT DELETE ROWS,将在事务完成(提交或回滚)时删除临时表中的数据.每个会话始终只会看到它已插入表中的数据,但是当您指定ON COMMIT DELETE ROWS进一步限制数据存在于当前事务的时间时.