怎样把超大文本数据中的指定列导入Oracle数据表?Oracle有没有类似SQL Server中DT

文本中大概有几十万条记录,要求效率比较高

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 加载一致,不再重复
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-19
这么大的表最好在数据库里创建一张外部表,在数据库中保留表结构,在操作系统下保存表数据,一分钟的事,完全没必要用sql loader花大量时间导入,那样很影响性能,也会占用大量空间。语法类似于这样,你要指定文本在操作系统下的路径以及其他细粒信息,给个例子: create table extab_test3
(id number,name varchar2(20))
organization external
(type oracle_loader default directory dump_dir
access parameters
(records delimited by newline
badfile dump_dir:'empxt%a_%p.bad'
logfile dump_dir:'expxt%a_%p.log'
fields terminated by ','
missing field values are null
(id,name))
location ('empxt2.dat'))

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网