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文件(excel轉csv)
准備的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):使用WPS將excel直接轉txt
無論轉換成 Unicode文本格式 還是 文本文件(制表符分隔)格式的文本文件都識別不出。
3)嘗試導入三:使用WPS將excel轉csv
excel文件另存為csv文件后即可直接使用Text Importer轉換了。
4)期間遇到的問題:
導入時發現Text Importer報以下警告:
並且可以發現導入后數據全部為null,也就是說Oracle11g不支持UTF16格式。
解決方法參考:http://www.myexceptions.net/program/1047444.html
- 打開直接轉完的txt文件,復制其內容到新的txt文件中即可
- Java代碼將UTF16轉成UTF8格式