使用SQL*Loader将CSV文件数据导入ORACLE
2014-10-20 16:58
846 查看
1. 环境条件与操作目标
(1) Oracle中存在一个Employee表,表中包含4个字段:
emp_id number
emp_name varchar2
emp_date date
dpt_id number
(2) 一个CSV文件emp.csv, 包含了上述表中的相关数据,字段顺序与上述
表字段相同。内容如下:
1001,"James","2011/04/08",100
1001,"Tom","2010/10/15",100
1001,"Larry","2009/01/02",101
(3) 任务目标将emp.csv中的数据,使用sql*loader,导入表employee
2、导入数据
控制文件(control.ctl)中内容如下:
OPTIONS (skip=1, rows=10)
LOAD DATA
CHARACTERSET AL32UTF8
INFILE 'it.csv'
INTO TABLE employee
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
EMD_ID,
EMP_NAME,
EMD_DATE DATE "YYYY/MM/DD",
DPT_ID
)
执行SQL*Loader:
> sqlldr userid=username/password@orcl control=control.ctl log=D:\resulthis.out
ps:如果中文导入出现乱码 加入上面红色部分
--查看服务器端字符集
通过客户端或服务器端的sql*plus登录ORACLE的一个合法用户,执行下列SQL语句:
SQL > select
* from V$NLS_PARAMETERS
看到如下类似结果
PARAMETER VALUE
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY ¥
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET AL32UTF8
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY ¥
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS CHAR
NLS_NCHAR_CONV_EXCP FALSE
结果集中标红的字体就是 oracle服务端所用的字符集
引用地址:http://www.2cto.com/database/201209/154648.html
http://lovelmf1212.blog.163.com/blog/static/1163406201192855614227/
(1) Oracle中存在一个Employee表,表中包含4个字段:
emp_id number
emp_name varchar2
emp_date date
dpt_id number
(2) 一个CSV文件emp.csv, 包含了上述表中的相关数据,字段顺序与上述
表字段相同。内容如下:
1001,"James","2011/04/08",100
1001,"Tom","2010/10/15",100
1001,"Larry","2009/01/02",101
(3) 任务目标将emp.csv中的数据,使用sql*loader,导入表employee
2、导入数据
控制文件(control.ctl)中内容如下:
OPTIONS (skip=1, rows=10)
LOAD DATA
CHARACTERSET AL32UTF8
INFILE 'it.csv'
INTO TABLE employee
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
EMD_ID,
EMP_NAME,
EMD_DATE DATE "YYYY/MM/DD",
DPT_ID
)
执行SQL*Loader:
> sqlldr userid=username/password@orcl control=control.ctl log=D:\resulthis.out
ps:如果中文导入出现乱码 加入上面红色部分
--查看服务器端字符集
通过客户端或服务器端的sql*plus登录ORACLE的一个合法用户,执行下列SQL语句:
SQL > select
* from V$NLS_PARAMETERS
看到如下类似结果
PARAMETER VALUE
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY ¥
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET AL32UTF8
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY ¥
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS CHAR
NLS_NCHAR_CONV_EXCP FALSE
结果集中标红的字体就是 oracle服务端所用的字符集
引用地址:http://www.2cto.com/database/201209/154648.html
http://lovelmf1212.blog.163.com/blog/static/1163406201192855614227/
相关文章推荐
- 使用SQL*Loader将CSV文件数据导入ORACLE数据表
- 使用SQL*Loader将CSV文件数据导入ORACLE数据表
- 使用SQL*LOADER将TXT或CSV数据导入ORACLE
- 使用Oracle SQL Loader进行大数据导入
- 【ORACLE】sql*loader的使用(以将iostat数据导入数据库表为例)
- PL/SQL将txt(csv)文件导入数据到oracle
- Oracle sqldevelop的使用(数据即.dmp文件的导入,用户创建,创建连接)
- Oracle工具应用(一):数据文件导入SQL*Loader
- 使用sql*loader将excel等文件中的数据传至oracle
- Oracle 使用PL/SQL 读取CSV文件,将数据拆分到表中丢失数据行
- 使用 Sql*Loader 向 Oracle 导入数据
- 使用 Sql*Loader 向 Oracle 导入数据
- Oracle自动导入数据文件(类似bcp的功能)及问题记录SQL*LOADER-704,ORA-12504
- 如何使用PL/SQL导入CSV文件到Oracle
- Oracle导入大量数据时使用控制文件导入数据的方法
- 使用SQL*LOADER导入数据
- Oracle SQL Loader数据导入
- 使用ODBC, 将CSV文件里的数据导入DataSet
- 在pl/sql中使用exp/imp工具实现oracle数据导出/导入
- 在Oracle表数据和xml文件间相互导入导出的PL/SQL 过程