现在我正在研究外部表...虽然我喜欢它的灵活性。我想知道关于外部表的这些事情 -
与SQL Loader一样,我们可以将数据附加到表中。我们可以在外部表中执行此操作吗?
在外部表中,我们无法创建索引,也无法执行DML操作。是这种虚拟表还是在数据库中获取空间?
同样在SQL loader中,我们可以从外部表中的任何服务器访问数据,我们定义默认目录。我们可以在从任何服务器访问数据的外部表中执行相同操作吗?
答案 0 :(得分:1)
外部表允许Oracle在平面文件中查询存储在数据库外部的数据,就好像该文件是Oracle表一样。
ORACLE_LOADER驱动程序可用于访问以SQL * Loader加载的任何格式存储的任何数据。不能在外部表上执行DML,但它们可用于查询,连接和排序操作。可以针对外部表创建视图和同义词。它们在数据仓库的ETL过程中很有用,因为数据不需要分阶段并且可以并行查询。它们不应该用于经常查询的表格。
你问:
- 就像在SQL Loader中一样,我们可以将数据附加到表中。我们可以在外部表中执行此操作吗?
醇>
是
- 在外部表中,我们无法创建索引,也无法执行DML操作。是这种虚拟表还是在数据中获取空间?
醇>
顾名思义,它在数据库外部。您使用READ ONLY
语法。该目录是在操作系统级别创建的。
- 同样在SQL加载器中,我们可以从外部表中的任何服务器访问数据,我们定义DEfault目录。我们可以在从任何服务器访问数据的外部表中执行相同的操作吗?
醇>
这是错误的。 SQL * Loader 是客户端工具,而外部表是服务器端工具。外部表可以加载可从数据库服务器访问的文件。您无法从驻留在客户端上的文件加载外部表。您需要将文件保存到Oracle服务器可用的文件系统。
在版本10g之前,外部表格为word1 {
do not care1
do not care2
...
} word2
。无法执行 DML 。 从版本Oracle数据库10g开始,可以写入外部表以及从中读取。
从文档中,还可以阅读Behavior Differences Between SQL*Loader and External Tables