http://blog.itpub.net/28602568/viewspace-1797410/
1.方法1:外部表
1、将excel另存为.txt格式(2种txt 格式都可以),再传到数据库directory 路径 (目录列表:select * from dba_directories)
create or replace directory datapump as 'D:\app\Administrator\admin\db\dpdump';
grant read,write on directory datapump to public;
2、执行创建外部表语句:(在pl/sql sql窗口解释器上执行,而不是在command 窗口执行,(会报错))
create table test
(a1 varchar2(400),
a2 varchar2(400),
a3 varchar2(400),
a4 varchar2(400),
a5 varchar2(400),
a6 varchar2(400),
a7 varchar2(400),
a8 varchar2(400),
a9 varchar2(400),
a10 varchar2(400),
a11 varchar2(400),
a12 varchar2(400),
a13 varchar2(400),
a14 varchar2(400),
a15 varchar2(400),
a16 varchar2(400),
a17 varchar2(400),
a18 varchar2(400),
a19 varchar2(400))
organization external
(type oracle_loader
default directory datapump
access parameters
( records delimited by newline
fields terminated by " "
)location ( '3-29.txt' ))
reject limit unlimited;
(a1 varchar2(400),
a2 varchar2(400),
a3 varchar2(400),
a4 varchar2(400),
a5 varchar2(400),
a6 varchar2(400),
a7 varchar2(400),
a8 varchar2(400),
a9 varchar2(400),
a10 varchar2(400),
a11 varchar2(400),
a12 varchar2(400),
a13 varchar2(400),
a14 varchar2(400),
a15 varchar2(400),
a16 varchar2(400),
a17 varchar2(400),
a18 varchar2(400),
a19 varchar2(400))
organization external
(type oracle_loader
default directory datapump
access parameters
( records delimited by newline
fields terminated by " "
)location ( '3-29.txt' ))
reject limit unlimited;
or
create table test
参数注释:
(name1 varchar(4000 )/*等其他字段*/)
organization external
(type oracle_loader
default directory bak
access parameters
( records delimited by newline characterset UTF16
fields terminated by " "
)location ( '文件名称.txt' ))
reject limit unlimited;
参数注释:
参数注释:
( records delimited by newline characterset UTF16 /*字符集要和“文件名称.txt”字符集相同,而非数据和系统文件(查看T.txt字符集命令:file T.txt)*/
fields terminated by " " /*描述字段的终止符*/
参数注释:
( records delimited by newline characterset UTF16 /*字符集要和“文件名称.txt”字符集相同,而非数据和系统文件(查看T.txt字符集命令:file T.txt)*/
fields terminated by " " /*描述字段的终止符*/
3、查询表即可 select * from test;
select * from test;
create table t2 as select * from test;
create table t2 as select * from test;
参数介绍:
a)ORGANIZATION EXTERNAL 关键字,必须要有。以表明定义的表为外部表。
b)外部表的类型
ORACLE_LOADER:定义外部表的缺省方式,只能只读方式实现文本数据的装载。
ORACLE_DATAPUMP:支持对数据的装载与卸载,数据文件必须为二进制dump文件。可以从外部表提取数据装载到内部表,也可以从内部表卸载数据作为二进制文件填充到外部表。
c)DEFAULT DIRECTORY:缺省的目录指明了外部文件所在的路径
d)LOCATION:定义了外部表的位置
e)ACCESS PARAMETERS:描述如何对外部表进行访问
RECORDS关键字后定义如何识别数据行
DELIMITED BY 'XXX'——换行符,常用newline定义换行,并指明字符集。对于特殊的字符则需要单独定义,如特殊符号,
b)外部表的类型
ORACLE_LOADER:定义外部表的缺省方式,只能只读方式实现文本数据的装载。
ORACLE_DATAPUMP:支持对数据的装载与卸载,数据文件必须为二进制dump文件。可以从外部表提取数据装载到内部表,也可以从内部表卸载数据作为二进制文件填充到外部表。
c)DEFAULT DIRECTORY:缺省的目录指明了外部文件所在的路径
d)LOCATION:定义了外部表的位置
e)ACCESS PARAMETERS:描述如何对外部表进行访问
RECORDS关键字后定义如何识别数据行
DELIMITED BY 'XXX'——换行符,常用newline定义换行,并指明字符集。对于特殊的字符则需要单独定义,如特殊符号,
可以使用OX'十六位值',例如tab(/t)的十六位是9,则DELIMITEDBY0X'09';
cr(/r)的十六位是d,那么就是DELIMITEDBY0X'0D'。
SKIP X ——跳过X行数据,有些文件中第一行是列名,需要跳过第一行,则使用SKIP 1。
FIELDS关键字后定义如何识别字段,常用的如下:
FIELDS:TERMINATED BY 'x'——字段分割符。
ENCLOSED BY 'x'——字段引用符,包含在此符号内的数据都当成一个字段。
例如一行数据格式如:"abc","a""b,""c,"。使用参数TERMINATED BY ',' ENCLOSED BY '"'后,系统会读到两个字段,第一个字段的值是abc,第二个字段值是a"b,"c,。
LRTRIM ——删除首尾空白字符。
MISSING FIELD VALUES ARE NULL——某些字段空缺值都设为NULL。
对于字段长度和分割符不确定且准备用作外部表文件,可以使用UltraEdit、Editplus等来进行分析测试,如果文件较大,则需要考虑将文件分割成小文件并从中提取数据进行测试。
cr(/r)的十六位是d,那么就是DELIMITEDBY0X'0D'。
SKIP X ——跳过X行数据,有些文件中第一行是列名,需要跳过第一行,则使用SKIP 1。
FIELDS关键字后定义如何识别字段,常用的如下:
FIELDS:TERMINATED BY 'x'——字段分割符。
ENCLOSED BY 'x'——字段引用符,包含在此符号内的数据都当成一个字段。
例如一行数据格式如:"abc","a""b,""c,"。使用参数TERMINATED BY ',' ENCLOSED BY '"'后,系统会读到两个字段,第一个字段的值是abc,第二个字段值是a"b,"c,。
LRTRIM ——删除首尾空白字符。
MISSING FIELD VALUES ARE NULL——某些字段空缺值都设为NULL。
对于字段长度和分割符不确定且准备用作外部表文件,可以使用UltraEdit、Editplus等来进行分析测试,如果文件较大,则需要考虑将文件分割成小文件并从中提取数据进行测试。
f)FIELDS TERMINATED BY "," --描述字段的终止符
g)REJECT LIMIT UNLIMITED --描述允许的错误数,此处为无限制
【源于本人笔记】 若有书写错误,表达错误,请指正...
方法2: pl/sql developer ODBC Imtorper 导入
http://jingyan.baidu.com/article/6dad5075ce7261a123e36e0d.html