外部表限制

时间:2015-12-10 07:56:15

标签: oracle sql-loader external-tables

现在我正在研究外部表...虽然我喜欢它的灵活性。我想知道关于外部表的这些事情 -

  1. 与SQL Loader一样,我们可以将数据附加到表中。我们可以在外部表中执行此操作吗?

  2. 在外部表中,我们无法创建索引,也无法执行DML操作。是这种虚拟表还是在数据库中获取空间?

  3. 同样在SQL loader中,我们可以从外部表中的任何服务器访问数据,我们定义默认目录。我们可以在从任何服务器访问数据的外部表中执行相同操作吗?

1 个答案:

答案 0 :(得分:1)

外部表允许Oracle在平面文件中查询存储在数据库外部的数据,就好像该文件是Oracle表一样。

ORACLE_LOADER驱动程序可用于访问以SQL * Loader加载的任何格式存储的任何数据。不能在外部表上执行DML,但它们可用于查询,连接和排序操作。可以针对外部表创建视图和同义词。它们在数据仓库的ETL过程中很有用,因为数据不需要分阶段并且可以并行查询。它们不应该用于经常查询的表格。

你问:

  
      
  1. 就像在SQL Loader中一样,我们可以将数据附加到表中。我们可以在外部表中执行此操作吗?
  2.   

  
      
  1. 在外部表中,我们无法创建索引,也无法执行DML操作。是这种虚拟表还是在数据中获取空间?
  2.   

顾名思义,它在数据库外部。您使用READ ONLY语法。该目录是在操作系统级别创建的。

  
      
  1. 同样在SQL加载器中,我们可以从外部表中的任何服务器访问数据,我们定义DEfault目录。我们可以在从任何服务器访问数据的外部表中执行相同的操作吗?
  2.   

这是错误的。 SQL * Loader 客户端工具,而外部表服务器端工具。外部表可以加载可从数据库服务器访问的文件。您无法从驻留在客户端上的文件加载外部表。您需要将文件保存到Oracle服务器可用的文件系统。

在版本10g之前,外部表格为word1 { do not care1 do not care2 ... } word2 。无法执行 DML 从版本Oracle数据库10g开始,可以写入外部表以及从中读取。

从文档中,还可以阅读Behavior Differences Between SQL*Loader and External Tables