Sql 将数据从平面文件提取到表中
我正在使用Oracle database 9i。 我想从flatfile.txt中提取数据,然后使用sql_加载器、utl_文件、外部表、sqldeveloper、toad以外的其他工具将它们插入客户机上的表中 平面文件源的示例: 艾伦分析师13456 国王经理98768Sql 将数据从平面文件提取到表中,sql,plsql,load,oracle9i,Sql,Plsql,Load,Oracle9i,我正在使用Oracle database 9i。 我想从flatfile.txt中提取数据,然后使用sql_加载器、utl_文件、外部表、sqldeveloper、toad以外的其他工具将它们插入客户机上的表中 平面文件源的示例: 艾伦分析师13456 国王经理98768 这将从文件_name.csv文件中提取数据,并将其插入到EX_表中 create table EX_TABLE( COL1 varchar2(13 BYTE)
这将从文件_name.csv文件中提取数据,并将其插入到EX_表中
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
;
根据文件中的位置将数据加载到外部表平面文件的示例将非常有用。你是说你不想使用这些软件吗?你有什么可用的吗?我编辑了我的帖子。我想使用sql\u加载器、utl\u文件、外部表、sqldeveloper、toad以外的其他解决方案。您能为我们定义其他解决方案以供指导吗?没有使用Oracle工具或sql\u加载器、utl\u文件、外部表的任何其他解决方案。为什么阻止您使用所有设计用于解决此特定问题的工具?通常,当有人试图解决一个问题时,确定设计用于解决问题的工具,然后排除这些工具,需要有大量的背景资料来确定可行的方法可能是什么样子。当然,您可以编写一个Java/C/Python/Perl/任何与SQL*Loader相同的脚本。但是,仅仅为了取代Oracle免费提供的标准工具,就需要编写大量代码?查看示例文件,没有分隔符,因此它必须是位置分隔符或其他分隔符。是的,此分隔符用于.csv文件。下面我已经回答了简单的.txt文件。
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;