SQLldr技能必备!教你客户如何顺利导入数据库(客户sqlldr导入数据库)

在当今的信息化时代,数据库成为了企业信息管理的重要工具。无论是财务、物流、采购还是生产等大量业务数据,都可以通过数据库进行存储和管理。而将数据导入数据库则显得尤为关键和重要。其中,SQLldr技能是数据库导入的一种有效方式。本文将针对SQLldr技能进行深入解析,教你如何顺利导入数据库。

成都创新互联主营岳阳楼网站建设的网络公司,主营网站建设方案,成都App定制开发,岳阳楼h5微信小程序开发搭建,岳阳楼网站营销推广欢迎岳阳楼等地区企业咨询

SQLldr技能概述

SQLldr是一种可执行程序,可在终端执行,也可通过调用程序完成对数据库的数据导入。SQLldr具有以下优点:

1. 数据导入速度快:SQLldr能够全面利用计算机资源,对大量数据进行导入,且速度快。

2. 易于操作:SQLldr具有简单、易于操作的特点,不需要编写繁琐的代码,只需编写控制文件即可。

3. 数据导入精度高:SQLldr可进行数据验证并支持错误信息收集,保证数据导入的精度。

4. 不占用数据库资源:SQLldr的执行过程不会占用数据库的资源,保证数据库正常运转。

SQLldr实现数据导入,需要掌握以下几个关键点:

– 导入数据格式:一般为.csv、.txt、.xls等格式。

– 编写控制文件:控制文件(.ctl)用于指示SQLldr如何处理数据,其中需要包含读取文件路径、表字段数目、数据格式、数据类型等信息。

– 数据验证:SQLldr可对数据进行验证,确保数据准确无误。

– 大规模数据导入:SQLldr通过调用数组读取数据,对大量数据进行导入,增加导入速度。

SQLldr使用方法

一、编写控制文件

编写控制文件是SQLldr技能的核心。控制文件中包含了读取文件路径、目标表名、字段数目、数据格式、数据类型等信息。以读取.csv格式文件为例,以下是一个简单的控制文件模板:

“`

LOAD DATA

INFILE ‘data.csv’

BADFILE ‘data.bad’

DISCARDFILE ‘data.dis’

INTO TABLE table_name

FIELDS TERMINATED BY ‘,’

(optionally enclosed by ‘\”‘)

TRLING NULLCOLS

(column1, character(100),

column2, date “yyyymmdd”,

column3, integer)

“`

其中,控制文件中的各项参数说明如下:

1. INFILE: 需要读取数据的文件路径,相对路径或绝对路径均可。

2. BADFILE: 读取错误的数据存放路径。

3. DISCARD: 被丢弃的记录存放路径。

4. INTO TABLE: 要导入的目标表。

5. FIELDS TERMINATED BY: 数据分隔符。

6. (optionally enclosed by ‘\”‘): 如果数据里有文字字段,则需要加上”符号。

7. TRLING NULLCOLS: 表示缺省字段为空。

8. 最后仍然需要书写表的字段信息,格式是(column1, character(100),column2, date “yyyymmdd”,column3, integer)

二、执行SQLldr命令

在终端中,执行以下命令即可完成数据导入:

“`

sqlldr userid=/@ control= log=

“`

其中,各个参数的含义如下:

1. 客户提供的数据库账户

2. 配置文件路径

3. 日志文件路径,

通过上述命令执行,即可完成数据导入操作。

SQLldr技能的优化

尽管SQLldr技能非常简单,但也需要在实际操作中进行优化,以提升数据导入效率和精度。我们提供以下优化运用介绍:

1. 控制文件格式:对于读取类似.csv格式数据的文件,可以指定文件读取方式,即”fixed”或”different_size”,以免频繁读取文件大小,减少读取时间,提高导入速度。

2. 数据导入顺序:为了减小数据导入的时间和 IO 负载,可以将负载较高的字段放在一个块中进行导入,且应尽量避免 SQLLdr 对相同的块中字段进行重复读写。

3. 导入数据分块:对于大规模数据导入,SQLldr可以对数据进行分片处理,降低单块数据导入压力和无序性,保证数据导入流程的高效性和稳定性。

成都网站建设公司-创新互联,建站经验丰富以策略为先导10多年以来专注数字化网站建设,提供企业网站建设,高端网站设计,响应式网站制作,设计师量身打造品牌风格,热线:028-86922220

sqlldr导入数据的问题。可不可以跨局域网呢?

本地和远程都能用sqlldr的

本地的打开CMD , 输入

sqlldr userid=user/password@数据库名 control=路径/etl.ctl direct=true

就可以导入了~

下晌毁面是etl.ctl文件

load data infile ‘路径/文件名’

truncate into table 表名 –truncate是把拆耐原有的数据清空,再装载

FIELDS TERMINATED BY ‘|’ — | 为分隔符

trailing nullcols对应的字段名

(

aid ,

b,

c

)

注,建立CTL时,把上面旅谨春的中文注释去掉~

如何使用sqlloader导入xml文件到Oracle数据库

在Oracle表数据和xml文件间相互导入导出的PL/SQL 过程

学校里要求做个题,题目要求是写出将已知格式xml文件中的数据导入Oracle数据库、把数据库中的数据导出成xml文件的过程。

已知格式xml文件如下:

Tony Blair

Downing Street, London, UK

(061) 98765(061) 98768

Bill Clinton

White House, USA

(001)(001)

Tom Cruise

Jumbo Street, New York, USA

(001)(001)

Linda Goodman

Crax Lane, London, UK

(061)(061)

于是写出过程如下:

–建表

CREATE TABLE PEOPLE

(

   PERSONID VARCHAR2(10) PRIMARY KEY,

   NAME VARCHAR2(20),

   ADDRESS VARCHAR2(60),

   TEL  VARCHAR2(20),

   FAX  VARCHAR2(20),

   EMAIL VARCHAR2(40)

);

–从xml文件载入数据保存到数据库的过程

create or replace procedure xml2db(xmlfile varchar2) as

  p xmlparser.Parser;

  doc xmldom.DOMDocument;

  n xmldom.DOMNode;

  nl xmldom.DOMNodeList;

  len number;

  –根据PERSON结点生成插入SQL语句的过程

  function insertsql(node xmldom.DOMNode) return varchar2

  is

    n xmldom.DOMNode;

    nl xmldom.DOMNodeList;

    len number;

    nnm xmldom.DOMNamedNodeMap;

    isql varchar2(200);

  begin

    –取得PERSON结点所有属性

    nnm := xmldom.getAttributes(node);

    isql := ‘insert into people values(‘;

   敏野核 isql := isql || ””;

    –取得所有属性中的之一个属性,即”PERSONID”,并拼接到SQL语句中

    isql := isql || xmldom.getNodeValue(xmldom.item(nnm,0));

    isql := isql || ””;

    –取得PERSON结点下的所有结点,准备遍历

    nl := xmldom.getChildNodes(node);

    len := xmldom.getLength(nl);

    for 脊猛i in 0..len-1 loop

取出第i个结点

      n := xmldom.item(nl,i);

      isql := isql || ‘,’;

      isql := isql || 桥掘””;

将结点的文本值取出并拼接到SQL语句中

      isql := isql || xmldom.getNodeValue(xmldom.getFirstChild(n));

      isql := isql || ””;

    end loop;

    isql := isql || ‘)’;

    return isql;

  end insertsql;

begin

  p := xmlparser.newParser;

  xmlparser.parse(p,xmlfile);

  –转换xml文件成DOM对像

  doc := xmlparser.getDocument(p);

  xmlparser.freeParser(p);

  –取出所有PERSON元素

  nl := xmldom.getElementsByTagName(doc,’PERSON’);

  len := xmldom.getLength(nl);

  –清空people表的内容

  delete from people;

  for i in 0..len-1 loop

    –取出第i个PERSON元素

    n := xmldom.item(nl,i);

    –执行插入该PERSON元素所用的SQL语句

    execute immediate insertsql(n);

  end loop;

  commit;

  xmldom.freeDocument(doc);

end xml2db;

/

–将数据库中的数据导出成xml文件的过程

create or replace procedure db2xml(xmlfile varchar2) as

  doc xmldom.DOMDocument;

  ret xmldom.DOMNode;

  peoplenode xmldom.DOMNode;

  –遍历整个people表的游标

  –将people表中一行记录转换为元素

  –并插入到DOM文档对像根结点PEOPLE下的过程

  procedure addperson(doc xmldom.DOMDocument,people xmldom.DOMNode,

v_pid varchar2,v_name varchar2,v_addr varchar2,

v_tel varchar2,v_fax varchar2,v_email varchar2)

  is

    personelem xmldom.DOMElement;

    personnode xmldom.DOMNode;

    itemelem xmldom.DOMElement;

    itemnode xmldom.DOMNode;

    text xmldom.DOMText;

  begin

    –创建PERSON结点

    personelem := xmldom.createElement(doc,’PERSON’);

    –设置PERSONID属性

    xmldom.setAttribute(personelem,’PERSONID’,v_pid);

    personnode := xmldom.appendChild(peoplenode,xmldom.makeNode(personelem));

    –向PERSON结点中添加NAME元素

    itemelem := xmldom.createElement(doc,’NAME’);

将NAME结点添加到PERSON结点中

    itemnode := xmldom.appendChild(personnode,xmldom.makeNode(itemelem));

创建文本结点

    text := xmldom.createTextNode(doc,v_name);

将文本结点添加到NAME结点下,以构成完整NAME元素

    itemnode := xmldom.appendChild(itemnode,xmldom.makeNode(text));

    –向PERSON结点中添加ADDRESS元素

    itemelem := xmldom.createElement(doc,’ADDRESS’);

    itemnode := xmldom.appendChild(personnode,xmldom.makeNode(itemelem));

    text := xmldom.createTextNode(doc,v_addr);

    itemnode := xmldom.appendChild(itemnode,xmldom.makeNode(text));

    –向PERSON结点中添加TEL元素

    itemelem := xmldom.createElement(doc,’TEL’);

    itemnode := xmldom.appendChild(personnode,xmldom.makeNode(itemelem));

    text := xmldom.createTextNode(doc,v_tel);

    itemnode := xmldom.appendChild(itemnode,xmldom.makeNode(text));

    –向PERSON结点中添加FAX元素

    itemelem := xmldom.createElement(doc,’FAX’);

    itemnode := xmldom.appendChild(personnode,xmldom.makeNode(itemelem));

    text := xmldom.createTextNode(doc,v_fax);

    itemnode := xmldom.appendChild(itemnode,xmldom.makeNode(text));

    –向PERSON结点中添加EMAIL元素

    itemelem := xmldom.createElement(doc,’EMAIL’);

    itemnode := xmldom.appendChild(personnode,xmldom.makeNode(itemelem));

    text := xmldom.createTextNode(doc,v_email);

    itemnode := xmldom.appendChild(itemnode,xmldom.makeNode(text));

  end addperson;

begin

  –创建一个新DOM文档对像

  doc := xmldom.newDOMDocument;

  –为文档添加根结点PEOPLE

  peoplenode := xmldom.makeNode(xmldom.createElement(doc,’PEOPLE’));

  ret := xmldom.appendChild(xmldom.makeNode(doc),peoplenode);

  –使用游标遍历people中的每行,生成每一行对应的PERSON元素并添加到PEOPLE根结点中

  for v_row in cur_people loop

    addperson(doc,peoplenode,v_row.personid,v_row.name,

v_row.address,v_row.tel,v_row.fax,v_row.email);

  end loop;

  –将结果写入指定文件

  xmldom.writeToFile(doc,xmlfile);

  xmldom.freeDocument(doc);

end db2xml;

关于客户sqlldr导入数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

成都网站建设选创新互联(☎:028-86922220),专业从事成都网站制作设计,高端小程序APP定制开发,成都网络营销推广等一站式服务。

网页标题:SQLldr技能必备!教你客户如何顺利导入数据库(客户sqlldr导入数据库)
网页网址:http://www.hantingmc.com/qtweb/news40/25840.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联