ORACLE 1z0-047摘录

时间:2013-12-27 07:36:13

标签: sql oracle oracle11g oracle-sqldeveloper

这是来自oracle 1z0-047测试的问题。

EMPDET是一个包含列EMPNOENAME的外部表。哪个命令 会对EMPDET表有效吗?

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

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

C. CREATE VIEW empvu
AS
SELECT* FROM empdept;

D. CREATE INDEX empdet_dx
ON empdet(empno);

外表是什么意思?当我尝试运行查询时,所有四个选项都有效。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

“外部表”表示您的(通常)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')
);