如何使用SQLloader导入数据

SQL_loader批量上传数据
1.注释
在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE 表中。

如果是小数据量,如几十条至几百条,那么用plsql dev工具,在查询命令后加上for update 然后解锁,把数据复制粘贴进去就可以了。

但如果遇到大数据量几万至几十万时,上述方法就不可行了。

如下介绍如何使用oracle自带的sqlloader上传数据。

2.SQL_LOADER上传数据
2.1sql_loader说明
sql*loader是oracle自带程序。

需要上传数据的本机只要安装了oracle数据库或客户端就会自动集成该工具。

但是不同的版本对控制文件的写法要求有所不同。

具体可参见2.3节或者附件控制文件的内容。

2.2编辑数据文件
要使用sql*loader,其数据文件必须是两种,一种是*.txt 的文本文件,另一种是*.csv的文件。

例如,需要上传的数据是使用excel编辑的,那么只需要将excel另存为[制表符分割的txt 文件]或者另存为[逗号分割的csv 文件]即可。

上图是将excel文件另存为“文本文件(制表符分割)(*.txt)”文件格式后的效果要将excel文件转换成csv格式同上面一样,另存为“CSV(逗号分割)(*.csv)”格式即可。

如下图:
注意:CSV格式的文件打开后跟excel的样式差不多,但实际存储方式不一样。

在磁盘上CSV格式的文件中每个格子中的数据使用逗号分割开存储的。

这样的存储方式很有用,方面后面写控制文件。

控制文件在控制读取数据的时候直接以逗号为标记读取数据。

其实,plsql dev在导出文件的时候就可选择存储为csv格式。

按照以上方法,数据文件就准备好了。

2.3编写控制文件
控制文件其实就是SQL_LOADER上传数据时需要运行的脚本,其后缀名为ctl。

控制文件写明了数据文件的位置、加载数据的方式、加载到哪个表、如何读取数据等信息。

下面是一段简单、完整的控制文件的截图及解释:
图注:编写控制文件时用文本文件编写好,修改后缀名为ctl即可。

上面的代码比较简单。

需要复杂的控制,请查阅相关资料。

2.4SQL_LOADER导入数据
制作好了数据文件和控制文件,接下来就是把数据导入oracle表中。

下面还是用test 表来举例。

第一步:进入dos命令环境,检查sql_loader是否装好。

在命令窗口输入sqlldr,回车,如果系统正确装好了sql_loader就会提示如下:
第二步:执行导入命令。

在执行上传命令前先检查表中的数据,如下图
表中只有一条数据。

退出sqlplus,接下来执行导入命令,如果数据库在本机则可执行:
Sqlldr scott/leedb control=c:\controlfile.ctl data=c:\datafile.csv
如果是远程数据库,则可执行:
Sqlldr scott/leedb@xwdb control=c:\controlfile.ctl data=c:\datafile.csv
或
Sqlldr scott/leedb@192.168.0.20:1521/xwdb control=c:\controlfile.ctl data=c:\datafile.csv
(远程地址:端口/实例名称)
第一个命令是针对数据库在本机;第二个数据库在远程但已配置远程监听;第三命令针对数据库在远程但未配置远程监听的情况。

因为我测试,数据库装在本地,所以执行本地导入命令,如下图
命令执行成功后,系统提示是已提交6条记录,准备的数据正好是6条。

说明导入成功了。

连接数据库查询验证一下:
确实导入成功了。

至此,完成数据导入。

应该说这种导入方法是很可行的,尤其是针对大数据,方法相对简单且基本上不用第三方工具(excel/txt不算第三方工具吧)。

合集下载

Txt文件导入oracle数据库方法

Txt文件导入oracle数据库方法

Txt文件导入oracle数据库方法在Oracle数据库中,可以使用SQL*Loader工具或者外部表的方式将文本文件(.txt文件)导入到数据库。

下面我将为你详细介绍这两种方法。

方法一:使用SQL*Loader工具导入txt文件1.创建控制文件控制文件是SQL*Loader用来定义数据导入规则的文件。

它描述了数据文件的格式、目标表的结构,以及导入时的数据转换和验证规则。

例如,假设我们要将一个txt文件中的数据导入到名为EMP的表中,EMP表的结构如下:CREATETABLEEMPEMPNONUMBER(4),ENAMEVARCHAR2(10),JOBVARCHAR2(9),MGRNUMBER(4),HIREDATEDATE,SALNUMBER(7,2),COMMNUMBER(7,2),DEPTNONUMBER(2)我们可以创建一个名为emp.ctl的控制文件,内容如下:LOADDATAINFILE 'emp.txt'APPENDINTOTABLEEMPFIELDS TERMINATED BY ',' optionally enclosed by '"'EMPNO,ENAME,JOB,MGR,HIREDATECHAR"YYYY-MM-DD",SAL,COMM,DEPTNO2.准备数据文件在导入数据之前,需要将数据准备好并保存为一个txt文件(如emp.txt)。

确保数据文件的每一行与控制文件中的字段一一对应,并且字段之间以逗号分隔,如下所示:7902,SMITH,CLERK,7901,1980-12-17,800,,207369,ADAMS,CLERK,7876,1983-01-12,1100,,20...3. 使用SQL*Loader导入数据打开命令行窗口(或终端),输入以下命令导入数据:其中,username是数据库用户名,password是数据库密码,database是数据库实例名。

sqlloader导出数据和导入数据

sqlloader导出数据和导入数据

sqlloader导出数据和导⼊数据分类: Oracle忙了⼀天终于把sqlloader导出数据和导⼊数据弄清楚了,累死俺了。

这个总结主要分为三个⼤部分,第⼀部分(实例,主要分两步),第⼆部分(参数⼩总结),第三部分(完全参数总结)第⼀部分第⼀步 :这是我的导出数据的脚本call.sqlconn scott/tigerset echo offset term offset line 1000 pages 0set feedback offset heading offset trimspool onspool /temp/test/ldr_test.csvselect a.empno||',"'||a.ename||'",'||to_char(a.hiredate,'yyyy-mm-dd hh24:mi:ss')||','||a.sal from test a;spool offset trimspool offset heading onset feedback onset term onset echo onexit注释:call.sql脚本执⾏⽅法 (1)sqlplus /nolog 先进⼊sqlplus命令模式(2)start call.sql 在sqlplus命令模式下执⾏第⼆步 :导⼊数据的脚本add_test.ctlLOAD DATAINFILE ldr_test.csvTRUNCATE INTO TABLE testFIELDS TERMINATED BY"," OPTIONALLY ENCLOSED BY'"'(EMPNO,ENAME,HIREDATE date 'yyyy-mm-dd hh24:mi:ss',SAL)注释: 在第⼀步导出数据后,执⾏add_test.sql脚本命令为: sqlplus scott/tiger control=add_test.ctl⾄此⽤sqlplus导⼊/出数据完成了,如果有些参数不明⽩,请看⼀下第⼆三部分。

oracle sqlload用法

oracle sqlload用法

oracle sqlload用法SQL*Loader 是 Oracle 数据库中一个用于高效地将大量数据加载到表中的工具。

它可以从文本文件、CSV 文件或其他数据库中加载数据,并将其插入到指定的表中。

以下是SQL*Loader 的用法:1. 创建控制文件:SQL*Loader 需要一个控制文件来指定数据的格式和加载方式。

控制文件可以手动创建,也可以使用Oracle Enterprise Manager 或 SQL Developer 等工具生成。

控制文件包含以下内容:- LOAD DATA:指定数据加载的语句。

- INFILE:指定要加载的数据文件的路径和名称。

- INTO TABLE:指定要加载数据的目标表的名称。

- FIELDS TERMINATED BY:指定字段之间的分隔符。

- TRAILING NULLCOLS:指定允许空列。

- 载入的列名和列数据类型。

2. 准备数据文件:需要准备一个包含要加载的数据的文本文件。

数据文件中的每一行对应表中一条记录,字段之间使用控制文件中指定的分隔符进行分隔。

3. 运行 SQL*Loader:打开命令行终端或 SQL*Plus 窗口,使用以下命令来运行 SQL*Loader:```sqlldr username/password@database control=controlfile.ctllog=logfilename.log```- `username/password`:Oracle 数据库的用户名和密码。

- `database`:要连接的数据库实例的名称。

- `control=controlfile.ctl`:指定控制文件的路径和名称。

- `log=logfilename.log`:指定日志文件的路径和名称。

4. 检查日志文件:SQL*Loader 在加载数据时会生成一个日志文件,用于记录加载过程中的错误和警告信息。

通过查看日志文件,可以了解加载过程中是否发生了错误,并可以根据其提供的信息进行调试和修复。

Sql Loader批量加载数据的 使用

Sql Loader批量加载数据的 使用

Sql Loader批量加载数据的使用对于sql*loader的使用,自己试了下,记录在这1、假设要插入数据的表ftest,字段是(id,username,password,sj)2、导入表的数据以txt格式存储,名为data.txt1 f f 2010-8-192 f1 f1 2010-8-193 f2 f2 2010-8-194 f3 f3 2010-8-195 f4 f4 2010-8-193、写控制文件,格式为ctl,命名为cont.ctl 内容如下:load datainfile 'c:\data.txt'insert into table ftestfields terminated by " "(id,username,password,sj)注:如果表中没有数据就用insert,有数据就用append,删除旧数据插入新的数据用re place或truncate4 在cmd命令窗口中执行sqlldr fyzh/fyzh control=c:\cont.ctl data=c:\data.txt5 在plsql中查看表ftest查看已成功插入。

重新学习sqlldrsqlldr导入数据的一个最简单例子:load datainfile * --告诉sqlldr要加载的数据就包含在控制文件本身into table dept --加载到哪个表fields terminated by ','--数据加载形式应该是逗号分隔的值(deptno,dname,loc) --所要加载的列begindata --告诉sqlldr后面的行市要加载到dept表的数据10,Sales,Virginia20,Accounting,Virginia30,Consulting,Virginia40,Finance,Virginiacreate table dept(deptno number(2) constraint dept_pk primary key,dname varchar2(14),loc varchar2(13))sqlldr userid=gwm/gwm@fgisdb control=c:\demol.ctlselect * from dept;1 10 Sales Virginia2 20 Accounting Virginia3 30 Consulting Virginia4 40 Finance Virginiasqlldr导入的四种加载方式:APPEND :原先的表有数据就加在后面INSERT:装载空表如果原先的表有数据sqlloader会停止默认值REPLACE :原先的表有数据原先的数据会全部删除TRUNCATE :指定的内容和replace的相同会用truncate语句删除现存数据用SQLLDR加载数据的FAQ1、如何加载定界数据1)定界数据即用某个特殊字符分隔的数据,可能用引号括起,这是当前平面文件最常见的数据格式。

ORACLE中如何使用SQLLOAD批量添加数据

ORACLE中如何使用SQLLOAD批量添加数据

ORACLE中如何使用SQLLOAD批量添加数据在Oracle中,可以使用SQLLDR(SQL*Loader)工具来批量添加数据。

SQL*Loader是一个客户端工具,用于从文本文件中加载数据到Oracle表中。

以下是使用SQL*Loader批量添加数据的步骤:1. 创建一个控制文件(Control File):控制文件是一个文本文件,用于指导SQL*Loader加载数据。

它包含了数据文件的格式和数据应该如何被加载到Oracle表中的规则。

控制文件描述了目标表的结构、数据文件的格式和字段之间的映射关系。

一个控制文件可以对应多个数据文件。

2. 创建一个数据文件(Data File):数据文件是包含待加载数据的文本文件。

它可以是一个纯文本文件,也可以是包含字段分隔符的CSV或其他格式的文件。

数据文件的格式应该与控制文件中描述的格式匹配。

3.编写控制文件:控制文件是一个使用特定语法规则编写的文本文件。

它包含了以下几个部分:- LOAD DATA:指示SQL*Loader加载数据的开始。

-INFILE:指定数据文件的路径和名称。

-INTOTABLE:指定目标表的名称。

-FIELDSTERMINATEDBY:指定字段之间的分隔符。

-(列名1,列名2,...):指定数据文件中各个字段的映射关系。

字段的顺序和个数应该与目标表的列顺序和个数一致。

4. 运行SQL*Loader:打开终端(命令提示符或终端窗口),使用以下命令运行SQL*Loader:``````其中,`username`是Oracle用户名,`password`是密码,`database`是数据库名称,`controlfile.ctl`是控制文件的路径和名称。

5. 检查加载结果:运行完成后,SQL*Loader将输出加载的数据行数和错误行数。

如果有错误行,可以查看生成的日志文件以获得更多详细信息。

注意事项:- 在使用SQL*Loader加载数据之前,应该先创建目标表,确保表的结构与控制文件中描述的一致。

【转】sqlload导入大量数据步骤详解

【转】sqlload导入大量数据步骤详解

【转】sqlload导入大量数据步骤详解一、加载txt文本1.在D盘建立sqlldr的控制文件,111.ctl 内容如下LOAD DATAINFILE 'd:\111.txt'INTO TABLE SALGRADE_TESTTRUNCATEFIELDS TERMINATED BY ','(GRADE,LOSAL,HISAL)2.在D盘建立sqlldr的数据文件111.txt,内容如下格式1,700,12002,1201,14003,1401,20004,2001,30005,3001,99993.在CMD的命令行模式执行加载操作sqlldr scott/tiger control=d:\111.ctl log=d:\111.log bad=d:\111.baSQL*Loader: Release 11.2.0.1.0 - Production on 星期三 9月 14 10:58:35 2011Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved达到提交点 - 逻辑记录计数 4达到提交点 - 逻辑记录计数 54.登录数据库验证加载结果D:\window\server\mysql-5.1.51\bin>sqlplus scott/tiger连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> select * from SALGRADE_TEST;GRADE LOSAL HISAL---------- ---------- ----------1 700 12002 1201 14003 1401 20004 2001 30005 3001 99995.导入成功之后,查看111.log6.注释LOAD DATA 控制文件标识INFILE 'd:\111.txt'为数据文件地址和名称,此处如果是INFILE *表示要加载的数据就在这个控制文件里,也就是BEGINDATA后面跟的内容。

如何使用SQLloader导入数据

如何使用SQLloader导入数据SQL_loader批量上传数据1.注释在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE 表中。

如果是小数据量,如几十条至几百条,那么用plsql dev工具,在查询命令后加上for update 然后解锁,把数据复制粘贴进去就可以了。

但如果遇到大数据量几万至几十万时,上述方法就不可行了。

如下介绍如何使用oracle自带的sqlloader上传数据。

2.SQL_LOADER上传数据2.1sql_loader说明sql*loader是oracle自带程序。

需要上传数据的本机只要安装了oracle数据库或客户端就会自动集成该工具。

但是不同的版本对控制文件的写法要求有所不同。

具体可参见2.3节或者附件控制文件的内容。

2.2编辑数据文件要使用sql*loader,其数据文件必须是两种,一种是*.txt 的文本文件,另一种是*.csv的文件。

例如,需要上传的数据是使用excel编辑的,那么只需要将excel另存为[制表符分割的txt 文件]或者另存为[逗号分割的csv 文件]即可。

上图是将excel文件另存为“文本文件(制表符分割)(*.txt)”文件格式后的效果要将excel文件转换成csv格式同上面一样,另存为“CSV(逗号分割)(*.csv)”格式即可。

如下图:注意:CSV格式的文件打开后跟excel的样式差不多,但实际存储方式不一样。

在磁盘上CSV格式的文件中每个格子中的数据使用逗号分割开存储的。

这样的存储方式很有用,方面后面写控制文件。

控制文件在控制读取数据的时候直接以逗号为标记读取数据。

其实,plsql dev在导出文件的时候就可选择存储为csv格式。

按照以上方法,数据文件就准备好了。

2.3编写控制文件控制文件其实就是SQL_LOADER上传数据时需要运行的脚本,其后缀名为ctl。

控制文件写明了数据文件的位置、加载数据的方式、加载到哪个表、如何读取数据等信息。

sqlloader使用方法

sqlloader使用方法SQL*Loader是Oracle数据库提供的一种用于导入数据的工具,它可以通过读取数据文件,并将数据加载到Oracle表中。

本文将详细介绍SQL*Loader的使用方法。

一、准备工作在使用SQL*Loader之前,需要进行一些准备工作。

首先,需要创建一个数据文件,该文件包含要导入的数据。

其次,需要创建一个控制文件,该文件描述了数据文件的结构以及如何将数据加载到表中。

最后,需要确保已经创建了目标表,以便将数据加载到表中。

二、创建数据文件数据文件是包含要导入的数据的文本文件。

可以使用任何文本编辑器创建数据文件,确保数据文件的格式与要导入的表的字段格式相匹配。

每条记录应该占据一行,并且字段之间使用分隔符进行分隔。

三、创建控制文件控制文件是描述如何加载数据的文件。

它指定了数据文件的位置、格式以及要加载数据的表的结构。

控制文件是一个文本文件,可以使用任何文本编辑器进行创建。

以下是一个控制文件的示例:LOAD DATAINFILE 'data.txt'INTO TABLE employeesFIELDS TERMINATED BY ','(emp_id, emp_name, emp_salary)上述示例中,LOAD DATA表示开始数据加载。

INFILE指定了数据文件的路径和名称。

INTO TABLE指定了要将数据加载到的表的名称。

FIELDS TERMINATED BY指定了字段之间的分隔符。

括号中的内容是表中的字段列表,用于指定数据文件中各个字段的顺序。

四、执行SQL*Loader执行SQL*Loader需要使用命令行界面。

打开命令行界面,并进入SQL*Loader的安装目录。

然后使用以下命令执行SQL*Loader:sqlldr username/password@database control=controlfile.ctl上述命令中,username是Oracle数据库的用户名,password是密码,database是数据库的连接字符串,controlfile.ctl是控制文件的路径和名称。

OracleSQLLoader使用说明

OracleSQLLoader使用说明SQL Loader的基本用法如下:2.创建数据文件:数据文件是一个文本文件,它包含要加载到数据库表中的实际数据。

数据文件的格式必须与控制文件中指定的格式一致。

3. 运行SQL Loader:在命令行中执行SQL Loader命令,指定控制文件和数据文件的路径。

可以使用不同的参数和选项来调整SQL Loader 的行为。

例如,可以指定要加载的表、要跳过的行数、要使用的数据库连接等。

4. 查看日志文件:SQL Loader会生成一个日志文件,记录加载过程中的详细信息,包括加载的行数、错误信息等。

可以查看日志文件来检查加载的结果,并根据需要做出相应的处理。

SQL Loader还提供了许多高级功能和选项,以满足各种加载需求:1. 跳过和处理错误:SQL Loader可以跳过数据文件中的错误行,并继续加载后续行。

可以使用参数控制跳过错误的行数和处理错误的方式。

2. 转换和映射数据:SQL Loader可以根据需要对数据进行转换和映射。

例如,可以将数据从一个字符集转换为另一个字符集,或者将数据映射到目标表的不同列中。

3. 并行加载:SQL Loader支持并行加载,可以同时加载多个数据文件,以提高加载速度。

可以指定并行加载的线程数和每个线程加载的数据文件。

4. 加载大对象:SQL Loader可以加载包含大对象(例如BLOB和CLOB)的数据文件。

可以使用参数控制如何处理大对象的加载。

5. 控制文件生成器:Oracle提供了一个控制文件生成器,可以根据源表的结构自动生成控制文件。

这对于大型数据库或者不熟悉控制文件语法的用户来说非常有用。

总结:Oracle SQL Loader是一个功能强大的工具,可以高效地将大量数据加载到Oracle数据库中。

它提供了丰富的参数和选项,可以满足各种加载需求。

通过控制文件和数据文件,可以灵活地定义加载的格式和目标表的结构。

无论是加载小型表还是大型表,SQL Loader都能提供快速和可靠的加载功能。

ORACLE-SQLLOAD导入外部数据详解

ORACLE-SQLLOAD导⼊外部数据详解1.命令语法sqlldr userid=数据库连接 control=控制⽂件 log=/tmp/test.log data=/tmp/test.csv rows=10userid -- Oracle 的 username/password[@servicename]control -- 控制⽂件,可能包含表的数据log -- 记录导⼊时的⽇志⽂件,默认为控制⽂件(去除扩展名).logbad -- 坏数据⽂件,默认为控制⽂件(去除扩展名).baddata -- 数据⽂件,⼀般在控制⽂件中指定。

⽤参数控制⽂件中不指定数据⽂件更适于⾃动操作errors -- 允许的错误记录数,可以⽤他来控制⼀条记录都不能错rows -- 多少条记录提交⼀次,默认为 64skip -- 跳过的⾏数,⽐如导出的数据⽂件前⾯⼏⾏是表头或其他描2.控制⽂件-- 1) insert --为缺省⽅式,在数据装载开始时要求表为空-- 2) append --在表中追加新记录-- 3) replace --删除旧记录(⽤ delete from table 语句),替换成新装载的记录-- 4) truncate --删除旧记录(⽤ truncate table 语句),替换成新装载的记录控制⽂件格式load datainfile '要导⼊的⽂件路径'append into table 表名FIELDS TERMINATED BY whitespace //数据中每⾏记录⽤空格分隔trailing nullcols //表的字段没有对应的值时允许为空(字段1,last_login DATE "YYYY-MM-DD HH24:MI:SS" //指定接受⽇期的格式,相当⽤ to_date() 函数转换)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档