oracle - 检查临时表是否存在

如何检查 Oracle 临时表是否存在?当我知道它存在时查询 ALL_TABLES 或 USER_TABLES 时我没有看到该表。

此外,为了确保我理解临时表,如果使用 ON COMMIT DELETE ROWS 创建,该表将一直存在,但数据会在 session 结束时删除? session 是指连接何时关闭?

最佳答案

如果您拥有临时表,它将在 USER_TABLES 中列出;如果您对该表具有权限,则将在 ALL_TABLES 中列出。如果它存在于数据库中,它将列在 DBA_TABLES 中,但您可能没有查询 DBA_TABLES 的权限。如果表存在于数据库中但不在 ALL_TABLES 中,则意味着当前用户没有临时表的权限。

是的,临时表将永远存在(当然,一旦创建)。当您指定 ON COMMIT DELETE ROWS 时,临时表中的数据将在事务完成(提交或回滚)时删除。每个 session 将始终只看到它插入到表中的数据,但是当您指定 ON COMMIT DELETE ROWS 时,您进一步限制了数据存在于当前事务的时间。

https://stackoverflow.com/questions/8156784/

相关文章:

c# - ASP.NET 中的虚拟路径

vb.net - Gridview 显示和隐藏特定列

json - 将Json信息转换成F#列表

php - 如何使用某些 php 函数隐藏或编码 url?

django - 只读表单字段格式

php - 使用 PHP 检查字符串是否包含(CR、LF 或 CF 或 LF)或不包含

php - 快速获取图像的亮度/光度

PHP PDO - 可以连接但查询不工作

networking - BGP 与 OSPF 和 IsIs

wordpress - 在 wordpress 中使用 wp_list_table 时出现 fata