我有一个包含大约 100 列的文本文件,以"|"
. 我需要通过外部表从这个文件中获取一些列。所以我的解决方案是以ACCESS PARAMETERS
与文件相同的顺序指定部分下的所有列。并在创建表定义中定义所需的列。或者在创建表本身中以相同的顺序定义所有列。
我可以避免定义查询中的所有列吗?是否可以根据第一行名称本身获取列 - 前提是我将列名称作为第一行。
或者是否至少可以在select *
不提及每一列的情况下获得所有列(如)?下面是我使用的代码
drop table lz_purchase_data;
CREATE TABLE lz_purchase_data
(REC_ID CHAR(50))
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY "FILEZONE"
ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE Skip 1
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LRTRIM MISSING FIELD VALUES ARE NULL
) LOCATION( 'PURCHASE_DATA.txt' ))
REJECT LIMIT UNLIMITED
PARALLEL 2 ;
select * from LZ_PURCHASE_DATA;