0

如何从我的文本文件创建一个外部表并使用它来更新到真实表,而不是创建一个(普通)临时表并使用 SQL*Loader。

样本.ctl

load data 
infile 'data.txt'
append into table newtable
fields terminated by '|' 
TRAILING NULLCOLS
(ACCOUNTNBR)

数据.txt

一些原始数据..

54545554
54542145
65656566
58787788
4

1 回答 1

0
  1. 使用上述数据创建的文件 info.dat。

  2. 设置一个默认目录(包含数据源)并授予对它的访问权限(需要 CREATE ANY DIRECTORY 权限):

    创建目录 ext_tab_dir AS '/usr/apps/datafiles';

    GRANT READ ON DIRECTORY ext_tab_dir TO SCHEMA_OWNER;

  3. 创建一个名为 newtable_load 的外部表:

    CREATE TABLE newtable_load
    (ACCOUNTNBR NUMBER
    )
       ORGANIZATION EXTERNAL
       (TYPE ORACLE_LOADER
       DEFAULT DIRECTORY default_directory
       ACCESS PARAMETERS
       (RECORDS DELIMITED BY NEWLINE
        FIELDS (ACCOUNTNBR NUMBER)
       )
       LOCATION ('info.dat')
    );
    
  4. 将外部表 newtable_load 中的数据加载到表 newtable 中:

INSERT INTO newtable (ACCOUNTNBR) (SELECT ACCOUNTNBR FROM newtable_load);

于 2014-03-03T18:00:43.070 回答