Oracle 11g -- 使用PLSQL进行excel、csv、txt文件的数据导入 - MissRong

时间:2024-03-08 08:37:14

Oracle 11g -- 使用PLSQL进行excel、csv、txt文件的数据导入

1、导入 txt/csv 文件 (使用 Text Importer)

创建表结构:

create table student(
    id int,
    name varchar(255),
    birthday varchar(255),
    sex varchar(255)
)

创建表数据-student.txt(分隔符为\t):

01 赵雷 1990-01-01

02 钱电 1990-12-21

03 孙风 1990-05-20

04 李云 1990-08-06

05 周梅 1991-12-01

06 吴兰 1992-03-01

07 郑竹 1989-07-01

08 王菊 1990-01-20

 

使用Text Importer导入工具:

 

 

 

 

然后点击下方的import进行导入。

遇到问题:

解决方法:

原始数据的日期是用”-分隔开的,并不是默认的日期数字的形式,这里可以不使用to_date()进行转换,保留原来的格式即可。

再次import即可导入成功,查询数据如下:

注:如果有主键约束会自动覆盖掉相同键的记录

2、导入excel文件(excelcsv

准备的excel文件如下:

清空Oracle中表student的数据:

 

truncate table student;

 

1)尝试导入一:使用ODBC Importer导入工具

User/System DSN中没有选项,并且出现问题:

解决过程(fail了):

自己电脑是64位系统,而ODBC数据源管理程序是32位的,

需要手动添加新excel数据源DSN驱动:

运行C:\Windows\SysWOW64\odbcad32.exe

点击添加,选择如下图所示Microsoft Excel Driver*.xls

 

 

 

 

但是重启PLSQL或是服务之后还是识别不到新增的驱动。

2)尝试导入二(fail):使用WPSexcel直接转txt

无论转换成 Unicode文本格式 还是 文本文件(制表符分隔)格式的文本文件都识别不出。

3)尝试导入三:使用WPSexcelcsv

excel文件另存为csv文件后即可直接使用Text Importer转换了。

4)期间遇到的问题:

导入时发现Text Importer报以下警告:

并且可以发现导入后数据全部为null,也就是说Oracle11g不支持UTF16格式。

 

解决方法参考http://www.myexceptions.net/program/1047444.html

 

  • 打开直接转完的txt文件,复制其内容到新的txt文件中即可

 

  • Java代码将UTF16转成UTF8格式