首页 > 解决方案 > oracle中的外部表和全局临时表有什么区别?

问题描述

我在 oracle 中使用过外部表,它可以在包含数据的文件上创建(具有许多其他条件)。那么,全局临时表与外部表有何不同?

标签: databaseoracleexternal-tablesglobal-temp-tables

解决方案


外部表从例如 CSV 文件中获取其内容。数据库本身不存储任何数据。它们的内容对服务器的所有会话(=连接)都是可见的(前提是存在必要的访问权限)。数据独立于数据库而存在,只有在文件被外部更改时才会被删除(或更改)(据我所知,Oracle 无法写入外部表,只能从中读取 - 但我已经很久没有使用它们了,所以这可能在 Oracle 18 或更高版本中发生了变化)

临时表的数据在数据库内存储和管理,但每个会话在表中保留自己的数据副本。当会话断开或事务结束时(取决于临时表的定义),Oracle 会自动删除数据。临时表中的数据永远不会在数据库服务器重新启动后继续存在。


推荐阅读