Heim  >  Artikel  >  Datenbank  >  使用SQL*Loader高速批量数据加载工具

使用SQL*Loader高速批量数据加载工具

WBOY
WBOYOriginal
2016-06-07 17:05:561105Durchsuche

1.控制文件中包含要加载的数据 首先创建一张测试表 SQLgt; show user USER 为 ING SQLgt; create table dept 2

1.控制文件中包含要加载的数据

首先创建一张测试表

然后创建一个控制文件(其中包含被加载的数据)

然后在命令行执行加载

查看dept表

查看demo1.log日志文件

2.控制文件和数据文件分开

继续使用前面的dept表,,首先创建一个控制文件和一个数据文件

然后在命令行执行加载

最后查看dept表

3.sql*loader简要说明

注意:下面代码左边加括号的数并不是控制文件的一部分,只是为了方便显示。

(1)LOAD DATA
(2)INFILE *
(3)INTO TABLE DEPT
(4)FIELDS TERMINATED BY ','
(5)(DEPTNO,DNAME,LOC)
(6)BEGINDATA
(7)10,Sales,Virginia
(8)20,Accounting,Virginia
(9)30,Consulting,Virginia
(10)40,Finance,Virginia
(1):这会告诉sqlldr要做什么,上面的例子指示要加载数据。
(2):*是指要加载所有的数据(例子1),也可以直接指定数据文件的名字(例子2)。
(3):这会告诉sqlldr要加载到哪个表中。完整语法:[insert | append | replace | truncate] into table dept     insert - 默认就是insert,后面的dept表必须的空的;append  - 是追加,后面的dept表可以不为空;replace - 是先delete然后在insert;truncate - 是先truncate再insert。
(4):是告诉sqlldr以逗号分隔值。
(5):是告诉sqlldr数据要加载到对应的列中。
(6):是告诉sqlldr要加载的数据开始了。
(7)~(10):是要被加载的具体的数据。

4.常见的一些问题

如何加载特殊字符(引号)

查询结果

说明:部门10中的Virginia,USA:这是因为数据是"Virginia,USA"。输入数据字段必须包括在括号里才能保留数据中的逗号。

VS,"USA":这是因为输入数据是"VS,""USA"""。对于括号引起的字符串,两次“记为一次出现。

如何加载固定格式数据

查看

说明:上面控制文件的(DEPTNO POSITION(1:2), DNAME POSITION(3:12), LOC POSITION(13:20))还可以改为(DEPTNO POSITION(1:2), DNAME POSITION(*:12), LOC POSITION(*:20))效果是一样的。前者是绝对位置,后者是相对位置。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn