我使用Oracle数据库9i。我想从平面文件(.txt)中提取数据,然后使用sql_loader、utl_file、外部表、sqldeveloper、toad以外的其他方法将它们插入表(在客户端上)。
平面文件示例来源:
Allain Analyst 13456…
King manager 98768…
这将从file_name.csv文件中提取数据并将其插入EX_TABLE
create table EX_TABLE(
COL1 varchar2(13 BYTE)
,COL2 varchar2(250 CHAR)
,COL3 varchar2(210 CHAR)
,COL4 varchar2(70 CHAR)
)
organization external
(type oracle_loader
default directory EXT_DIR
access parameters
(
records delimited by newline
fields terminated by ','
missing field values are null
reject rows with all null
fields(COL1 CHAR(13)
,COL2 char(250)
,COL3 char(210)
,COL4 char(70)
)
)
location ('file_name.csv')
)
reject limit unlimited
;
CREATE TABLE EX_TABLE
( COL1 varchar2(3 BYTE)
,COL2 varchar2(3 CHAR)
,COL3 varchar2(1 CHAR)
,COL4 varchar2(10 CHAR)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY DAT_DIR
ACCESS PARAMETERS
( RECORDS DELIMITED BY n
CHARACTERSET JA16SJISTILDE BADFILE BAD_DIR : 'test_%p_%a.bad' LOGFILE LOG_DIR : 'test_%p_%a.log' READSIZE 10485760 FIELDS LRTRIM MISSING FIELD VALUES ARE NULL REJECT ROWS
WITH ALL NULL FIELDS ( COL1 ( 1: 3) CHAR(3) ,COL2 ( 4: 6) CHAR(3) ,COL3 ( 7: 7) CHAR(1) COL4 ( 8: 17) CHAR(10) ))
LOCATION
( 'STS.txt'
)
)
REJECT LIMIT UNLIMITED;
根据文件中的位置将数据加载到外部表