返回顶部
首页 > 资讯 > 数据库 >sqlldr
  • 652
分享到

sqlldr

2024-04-02 19:04:59 652人浏览 泡泡鱼
摘要

最近在处理一批文本数据,规定按照接口说明导入到oracle数据库中,经过最近的研究,解决了一些问题,觉得我必要总结一下:   常规资料:   --------

最近在处理一批文本数据,规定按照接口说明导入到oracle数据库中,经过最近的研究,解决了一些问题,觉得我必要总结一下:

 

常规资料:

 

----------------------------------------------------

Dos 环境下使用sql*Loader命令 加载

使用其它数据库的数据转移工具

Oracle 企业管理器中的数据加载功能

具体的技术实现

一、Dos 环境下加载

1、首先,服务器端的侦听服务必须已经开启。

测试方法:Dos 下输入

C:/>sqlplus username/passWord@serviceName

2、然后使用 Oracle 的 sqlldr 命令进行数据的导入

前期条件

1) Oracle 数据库端必须已经建好了需要导入的数据表的结构

2) 一个数据源文件 下面例子中为制表符分隔的文本文件 model.txt ,为excel 表中导出的

3) 手工编辑一个XXX.CTL 的控制文件

4) 命令行加载数据


如下实例:

以下文件缺省放到C:/ 下,如果不是,就需要指明全路径

1. 命令控制文件 input.ctl 内容

命令 
说明

load data 
1、控制文件标识

infile 'model.txt' 
2、要输入的数据文件名为test.txt

append into table system.塔位属性表 
3、向表test中追加记录

fields terminated by X'09' 
4、指定分隔符,字段终止于X'09',是一个制表符(TAB)

(编号,名称,大小) 
5、定义列对应表中顺序

 

控制文件中指定插入数据的方式关键字

insert,为缺省方式,在数据装载开始时要求表为空

append,在表中追加新记录

replace,删除旧记录,替换成新装载的记录

truncate,同上

在 Dos 窗口下使用 SQl*Loader 命令实现数据的导入

C:/>sqlldr userid=system/manager@ serviceName control=input.ctl

默认日志文件名为:input.log

默认坏记录文件为:input.bad

二、使用其它数据库转移工具


以下以SQL Server 导入导出向导为例

1、在数据的导入导出向导中设置数据源服务器,实例中选择数据源选择SQL Server

2、然后指定要导入的Oracle 数据源

3、需要配置Oracle 的属性信息

需要注意的是,登录数据库的用户信息即为数据导入之后的方案名,即导入之后的SQL Server 中的表在Oracle 中标志名为 username.表名

以下按照提示即可,可以完全导入SQl Server 中的数据表和视图,也可以使用查询语句返回你要选择的列或者行。

三、Oracle 企业管理器中的数据加载功能

登录Oracle 的控制台界面,针对单独的数据表可以使用数据加载工具

中间需要指定控制文件等,同Dos 加载一致,不再重复

 

----------------------------------------------------

向Oracle中导入文本数据时使用的控制文件格式
 
无论是使用上一篇中的哪种方式都需要有一个控制文件,下面是控制文件(ctl文件)书写的基本格式:
    
 命令
 说明
 
load data
 1、控制文件标识
 
infile 'testl.txt' 
 2、要输入的数据文件名为test.txt,此时是要导入的数据文件同控制文件在同一路径下,如果不在同一路径下则需要写完整路径名
 
append into table 表名(可以是全名也可以是同义词)
 3、向表test中追加记录
 
fields terminated by X'09'
 4、指定分隔符,字段终止于X'09'   (很重要),是一个制表符(TAB),如果用逗号分割就将X'09'替换为','
 
(编号,名称,大小)
 5、定义列对应表中顺序
 


  控制文件中指定插入数据的方式关键字


                           insert,为缺省方式,在数据装载开始时要求表为空

                           append,在表中追加新记录

                           replace,删除旧记录,替换成新装载的记录

                           truncate,同上

控制文件的示例:
load data
infile 'test.txt'
append into table test.test
fields terminated by X'09'
(test,test1,test2)

对有时间类型的数据导入的示例控制文件:
load data 
infile 'h:/TB_FACT_PHS_TICKET_DAY.txt'
Append into TABLE TB_FACT_PHS_TICKET_DAY
fields terminated by X'09'
(Time_Id            
,Region_Id         
,Cust_Type_Id      
,Prod_Type_Id      
,Acct_Item_Type_Id 
,Acct_Item_Type_Cd 
,Exchange97_Cd     
,Latn_Cd           
,Call_Duration     
,Access_In_Duration
,Income
,In_Date  Date "YYYY-MM-DD"
)

文件导入命令                    C:/>sqlldr userid=test/test@test control=test.ctl(此时控制文件test.ctl存在C:/路径下)
在命令控制符下进入Oracle        C:/>sqlplus username/password@serviceName

 

 


oracle导入txt数据文件2008年07月30日 星期三 17:21把txt文件格式的数据文件导入oracle的方法是利用sqlloader工具。

第一步:把文本格式的数据文件放入C盘。如,test.txt
第二步:建立控制文件append.ctl。(名字可以随便取,放C盘下)

append.ctl的内容如下:
  load data             --1、控制文件标识 
    infile   'test.txt'       --2、要输入的数据文件名为test.txt 
    append into table CTXSYS.test   --3、向CTXSYS表空间中的表test中追加记录 
    fields terminated by X'09' --4、字段终止于X'09',是一个制表符
(id,username,password,sj)     -----定义列对应顺序

   其中append为数据装载方式,还有其他选项: 
   a、insert,为缺省方式,在数据装载开始时要求表为空 
   b、append,在表中追加新记录 
   c、replace,删除旧记录,替换成新装载的记录 
   d、truncate,同上

第三步:在命令提示符下输入命令。
C:/>sqlldr userid=username/password

control=c:/append.ctl        数据库中用名的用户名和密码
或者 C:/>sqlldr userid=system/manager@ serviceName control=input.ctl 

 

----------------------------------------------------

 

一些经常出现的问题:

 

1。关于日期格式的问题:

 

ctl基本写法诸如:

 

load data
infile 'C:/TP_LOANCONTRACTSUM.txt'
insert into table TP_LOANCONTRACTSUM
fields terminated by '|!'
(
column01,
column02,
column03,
column04 "to_date(:column04,'''yyyy-mm-dd hh34:mi:ss''')",
column05 "to_date(:column05,'''yyyy-mm-dd hh34:mi:ss''')",
column06,
column07,
column08,
column09,
column10,
column11,
column12 "to_date(:column12,'''yyyy-mm-dd hh34:mi:ss''')",
column13
)
 

 

2。关于长字符串问题,CTL默认情况下是256位(或者256位左右),所以长字符串时会在log里报错,提示所输入的值超过最大长度,解决办法,在ctl文件里再指定大小,注意个情况,不能写VARCHAR只能写CHAR,否则报错,诸如:

 

load data
infile 'C:/TP_PLEDGECONTRACTINFO.txt'
insert into table TP_PLEDGECONTRACTINFO
fields terminated by '|!'
(
column01,
column02,
column03,
column04,
column05,
column06,
column07 "to_date(:column07,'''yyyy-mm-dd hh34:mi:ss''')",
column08,
column09,
column10 "to_date(:column10,'''yyyy-mm-dd hh34:mi:ss''')",
column11,
column12,
column13,
column14,
column15 "to_date(:column15,'''yyyy-mm-dd hh34:mi:ss''')",
column16,
column17,
column18 "to_date(:column18,'''yyyy-mm-dd hh34:mi:ss''')",
column19,
column20,
column21,
column22,
column23,
column24,
column25 "to_date(:column25,'''yyyy-mm-dd hh34:mi:ss''')",
column26 CHAR(500),
column27,
column28
)

您可能感兴趣的文档:

--结束END--

本文标题: sqlldr

本文链接: https://lsjlt.com/news/45917.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • sqlldr
    最近在处理一批文本数据,规定按照接口说明导入到ORACLE数据库中,经过最近的研究,解决了一些问题,觉得我必要总结一下:   常规资料:   --------...
    99+
    2024-04-02
  • sqlldr相关
    --DROP SEQUENCE SEQ_P_ENTERHALLLEADFLOW_CODES; CREATE  SEQUENCE SEQ_P_ENTERHALLLEADFLOW_CODES ...
    99+
    2024-04-02
  • sqlldr的用法
    在oracle数据库中导入txt文本方法,如现在需要将t_user_mobile_list.txt中的数据导入到oracle数据库t_user_mobile_list表中。   ...
    99+
    2024-04-02
  • sqlldr怎么用
    小编给大家分享一下sqlldr怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sqlldr userid=btup...
    99+
    2024-04-02
  • Oracle Sqlldr optionally enclosed by
    Oracle Sqlldr optionally enclosed by(GCH)In all, when you edit the control file,you would rather add th...
    99+
    2024-04-02
  • SQLLDR用武之地
    sqlldr专业术语就不做啰嗦,接地气的说这是为了导入或者批量导入.csv格式的数据。打开cmd之后我们输入sqlldr就可以看到相关的信息帮助信息,有着详细的解析,必看!那么我们多数配合脚本文档来使用也试...
    99+
    2024-04-02
  • SQLLDR语法怎么使用
    本篇内容主要讲解“SQLLDR语法怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQLLDR语法怎么使用”吧! 一、SQLLDR语法语法SQLLDR ...
    99+
    2024-04-02
  • sqlldr中怎么装载数据
    sqlldr中怎么装载数据,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1)把 excel 数据存为 t.txt 文件,注意文件后缀名为 ...
    99+
    2024-04-02
  • 如何理解SQLLDR-CTL文件
    如何理解SQLLDR-CTL文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 SQLLDR 可以把一些以文本格式存放的数据...
    99+
    2024-04-02
  • SQL中SQLLDR 命令怎么用
    这篇文章将为大家详细讲解有关SQL中SQLLDR 命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 SQL*Loader 是一个命令行下的操作工具,对应的操作系...
    99+
    2024-04-02
  • 利用sqlldr迁移数据- KDB到Oracle
    ./ kdb_to_oracle.sh user_name user_password eg: ./get_ddl.sh nda_202 N...
    99+
    2024-04-02
  • sqlplus和sqlldr工具的安装方法
    本篇内容主要讲解“sqlplus和sqlldr工具的安装方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“sqlplus和sqlldr工具的安装方法”吧!不管安...
    99+
    2024-04-02
  • SQLLDR中怎样CTL文件字段设置
    这篇文章将为大家详细讲解有关SQLLDR中怎样CTL文件字段设置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 position 关键字用来指定列的开始和...
    99+
    2024-04-02
  • oracle中如何使用sqlldr导入数据
    小编给大家分享一下oracle中如何使用sqlldr导入数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!背景900W数据的TX...
    99+
    2024-04-02
  • oracle中sqlldr的使用方法是什么
    SQLLoader是Oracle数据库中的一个用来批量加载数据到数据库表中的实用程序。以下是SQLLoader的使用方法: 编写...
    99+
    2024-05-11
    oracle
  • sqlldr导入数据乱码的解决办法
    本篇内容介绍了“sqlldr导入数据乱码的解决办法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!公司业务需...
    99+
    2024-04-02
  • oracle中sqlldr使用要注意哪些事项
    在使用sqlldr之前,需要确保已安装Oracle客户端,并且设置了正确的环境变量(如ORACLE_HOME和PATH)。 ...
    99+
    2024-05-21
    oracle
  • Oracle sqlldr导入一个日期列实例详解
    Oracle sqlldr导入一个日期列实例详解 1. LOAD DATA INFILE * INTO TABLE test FIELDS TERMINATED BY X'9' TRAILING NUL...
    99+
    2024-04-02
  • sqlldr导入数据时中文乱码怎么办
    本篇内容介绍了“sqlldr导入数据时中文乱码怎么办”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 之...
    99+
    2024-04-02
  • 批量数据文件用sqlldr导数据到oracle中
        使用sqlload导文本数据到oracle中想必很多人多使用过,但是倘若有几百或者几千个数据文本,或者实时有文本数据产生。这种场景如何批量导入oracle呢,下面就来讲解下我处理...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作