ctl文件去字段值中的tab

ctl文件去字段值中的tab,第1张

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

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

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

具体的技术实现

一、Dos 环境下加载

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

测试方法:Dos 下输入

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:\路径下)

在命令控制符下进入OracleC:\>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 hh24:mi:ss''')",

column05 "to_date(:column05,'''yyyy-mm-dd hh24:mi:ss''')",

column06,

column07,

column08,

column09,

column10,

column11,

column12 "to_date(:column12,'''yyyy-mm-dd hh24: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 hh24:mi:ss''')",

column08,

column09,

column10 "to_date(:column10,'''yyyy-mm-dd hh24:mi:ss''')",

column11,

column12,

column13,

column14,

column15 "to_date(:column15,'''yyyy-mm-dd hh24:mi:ss''')",

column16,

column17,

column18 "to_date(:column18,'''yyyy-mm-dd hh24:mi:ss''')",

column19,

column20,

column21,

column22,

column23,

column24,

column25 "to_date(:column25,'''yyyy-mm-dd hh24:mi:ss''')",

column26 CHAR(500),

column27,

column28

)

ctl 的写法

危险品货运

精选推荐

广告

SQL*Loader 向oracle数据库批量添加数据 .ctl文件 使用方式详见文章

17下载·0评论

2017年9月11日

【20150622 】sqlldr及ctl文件

2234阅读·0评论·0点赞

2015年6月22日

Oracle sqlldr命令和ctl控制文件

8731阅读·6评论·3点赞

2019年10月21日

txt导入mysql ctl_用Oracle sqlldr导入文本文件TXT

354阅读·0评论·0点赞

2021年2月3日

linux中ctl文件注释,linux apachectl命令参数及用法详解--Apache HTTP服务器控制接口

385阅读·0评论·0点赞

2021年5月12日

sqlldr语法

5973阅读·1评论·0点赞

2007年6月7日

天喻信息

精选推荐

广告

关于SQLLDR-CTL文件的编写和注意事项

1768阅读·2评论·0点赞

2020年10月12日

SQLLDR—CTL文件

7155阅读·0评论·6点赞

2017年12月12日

shell中sqlldr、ctl的基本使用与示例

4260阅读·3评论·3点赞

2020年9月15日

sqlder ctl控制文件 参数及模板

1387阅读·0评论·1点赞

2020年4月24日

insert /* APPEND */ into table_name用法

582阅读·0评论·0点赞

2011年1月3日

ORACLE数据加载加本,Oracle sqlldr导入数据使用默认值和提高性能的方法

142阅读·0评论·0点赞

2021年5月2日

oracle insert语句_Oracle的sqlldr命令的简单使用

412阅读·0评论·0点赞

2020年11月26日

pg_ctl -- 启动、停止、重启 PostgreSQL

6.7W阅读·1评论·4点赞

2012年8月3日

ctl 的写法_GrADSctl文件编写

oracle中字段怎么对应txt中的数据

方法一,使用SQL*Loader

这个是用的较多的方法,前提必须oracle数据中目的表已经存在。

大体步骤如下:

1 将森让哪excle文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的control.ctl时要将字段终止符改为','(fields terminated by ','),假设保存到E盘根目录。

2 如果没有存在的表结构,则创建,假设表为test,有两列为dm,ms。

3 用记事本创建SQL*Loader控制文件,网上说的文件名后缀为ctl,其实我自己发现就用txt后缀也行。比如命名为control.ctl,内容如下:(--后面的为注释,实际不需要)

load data --控制文件标识

infile 'e:\text.csv'--要此码输入的数据文件名为test.txt

append into table test --向表test中追加记录

fields terminated by X'09' --字段终止于X'滑模09',是一个制表符(TAB)

如果字段数据有"",可加上optionally enclosed by '"'

trailing nullcols

(dm,ms) --定义列对应顺序

备注:数据导入的方式上例中用的append,有一下几种:insert,为缺省方式,在数据装载开始时要求表为空;append,在表中追加新记录;replace,删除旧记录,替换成新装载的记录 ;truncate,同replace。

4 在命令行提示符下使用SQL*Loader命令实现数据的输入

sqlldr userid=system/manager@orcl control='e:\control.ctl' log=e:\log.txt bad=e:\bad.txt

方法


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12136645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存