使用外部表

该线程包含一些使用外部表的有用技巧。

使用外部表

=======================

1.将表指向外部文件。 如果外部文件中的数据被更改,则表中的数据也将发生变化。

2.外部表可以以与联接,视图中的标准表相同的方式进行查询...并且可以使用外部表上的所有类型的功能。

3.获取有关外部表的信息,查询“ USER_EXTERNAL_TABLES”数据字典视图。

4.对于此查询“ USER_EXTERNAL_LOCATIONS”,“ USER_EXTERNAL_TABLES”不显示表点的外部文件名。

5.用户无法在外部表上执行任何“ DML”操作。

6.外部表不能被索引。

7,不能在外部表上指定约束,即使不是非NULL或外键约束也是如此。

首先使用以下示例代码创建目录。


CREATE DIRECTORY MYDIR AS 'D:\'; 
将源文件放置在指定目录中(上述路径)

文件中的数据应特定于匹配表结构。

下一个

向指定用户授予读写权限。


GRANT READ,WRITE ON DIRECTORY MYDIR TO DEBASIS; 
创建EXTERNAL TABLE的示例代码

create table extemp1
(
empno number(4),
ename varchar2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY MYDIR
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE SKIP 1
FIELDS TERMINATED BY ','
(
empno CHAR,
ename CHAR,
JOB CHAR,
MGR CHAR,
HIREDATE CHAR,
SAL CHAR,
COMM CHAR,
DEPTNO CHAR
))
LOCATION('DATA.LST')
)
REJECT LIMIT 1
; 
示例2

======================

 
CREATE TABLE SCOTT.et
(
  id    NUMBER(8,3),
  name  VARCHAR2(10)
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
     DEFAULT DIRECTORY DDD
     ACCESS PARAMETERS 
       (        RECORDS DELIMITED BY NEWLINE
       BADFILE DDD:'et.bad'
       DISCARDFILE DDD:'et.dsc'
       LOGFILE DDD:'et.log'
       READSIZE 512
       DATE_CACHE 1000
       SKIP 0
       FIELDS TERMINATED BY ','
       MISSING FIELD VALUES ARE NULL
       REJECT ROWS WITH ALL NULL FIELDS
       (
         id CHAR,
         name CHAR
       ) )
     LOCATION (DDD:'aa.txt')
  )
REJECT LIMIT Unlimited
NOPARALLEL
NOMONITORING; 

From: https://bytes.com/topic/oracle/insights/768501-using-external-table

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值