Sql Oracle数据库中的外部表

Sql Oracle数据库中的外部表,sql,oracle,oracle11g,oracle-sqldeveloper,Sql,Oracle,Oracle11g,Oracle Sqldeveloper,EMPDET是一个包含列EMPNO和ENAME的外部表。什么是oracle数据库中的外部表? 为什么我们可以/不能从外部表更新/删除 A. UPDATE empdet SET ename = 'Amit' WHERE empno = 1234; B. DELETE FROM empdet WHERE ename LIKE 'J%'; oracle数据库中的外部表是通过sql命令访问驻留在某些.txt或.csv文件中的数据的一种方式。因此,表数据不保存在数据库表空间中,而是顺序数据集上的某种视

EMPDET
是一个包含列
EMPNO
ENAME
的外部表。什么是oracle数据库中的外部表? 为什么我们可以/不能从外部表更新/删除

A. UPDATE empdet
SET ename = 'Amit'
WHERE empno = 1234;

B. DELETE FROM empdet
WHERE ename LIKE 'J%';

oracle数据库中的外部表是通过sql命令访问驻留在某些
.txt
.csv
文件中的数据的一种方式。因此,表数据不保存在数据库表空间中,而是顺序数据集上的某种视图。因此,数据库无法索引或更新数据,因为它不在其作用域内,但只能对其进行选择。

“外部表”表示您的文件系统中存储了一个(通常)CSV文件,Oracle读取由CREATE Table语句中的设置定义的此CSV文件。数据不保存在Oracle表空间中,但您可以像选择普通表一样选择它们。但是,您只能选择它们(或从逻辑上创建视图),但不能修改任何内容

下面是一个外部表的简单示例:

CREATE TABLE ADHOC_CSV_EXT (
  C1   VARCHAR2(4000),
  C2   VARCHAR2(4000),
  C3   VARCHAR2(4000)
)
ORGANIZATION EXTERNAL (  
    TYPE ORACLE_LOADER
   DEFAULT DIRECTORY SOME_FOLDER
   ACCESS PARAMETERS (
        records delimited BY newline 
        fields terminated BY ',' optionally enclosed BY '"' 
        missing field VALUES are NULL)
   LOCATION ('foo.csv')
);

如果这是从字面上的测试,那么它是不道德的张贴在这里的问题。