`

(转)一般导入数据到Oracle有几种方法!这可是经验之谈哦!

阅读更多

一般导入数据到Oracle有几种方法!这可是经验之谈哦!
2006-12-27 20:00
前几天搞了下将excel表导入oracle数据库的问题,连查带问带自己摸索,将自己弄过的方法写出来和大家交流。这些方法也可以用于将其它格式的数据导入到oracle中,这里只是以excel为例。

方法一,使用SQL*Loader

这个是用的较多的方法,前提必须oracle数据中目的表已经存在。
大体步骤如下:
1 将excel文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的control.ctl时要将字段终止符改为','(fields terminated by ','),假设保存到c盘根目录。
2 如果没有存在的表结构,则创建,假设表为test,有两列为dm,ms。
3 用记事本创建SQL*Loader控制文件,网上说的文件名后缀为ctl,其实我自己发现就用txt后缀也行。比如命名为control.ctl,内容如下:(--后面的为注释,实际不需要) 

  load data            --控制文件标识
  infile 'c:\text.txt'     --要输入的数据文件名为test.txt
  append into table test    --向表test中追加记录
  fields terminated by X'09'  --字段终止于X'09',是一个制表符(TAB)
  (dm,ms)                    --定义列对应顺序
备注:数据导入的方式上例中用的append,有一下几种:insert,为缺省方式,在数据装载开始时要求表为空;append,在表中追加新记录;replace,删除旧记录,替换成新装载的记录
;truncate,同replace。
4 在命令行提示符下使用SQL*Loader命令实现数据的输入

sqlldr userid=system/manager control='c:\control.ctl'

我来举个例子

1.导出地区表的test.csv文件
"01","市区"
"02","柯桥"
"03","钱清"
"04","皋埠"
"05","漓渚"
"06","齐贤"
"08","袍江"
"09","平水"
"12","东浦"
....


2.编辑sqlldr导出控制文件test.ctl内容如下:
load data
infile 'e:\test.csv'
replace into table test
fields terminated by ',' optionally enclosed by '"'
trailing nullcols
(id,name)


3.在cmd中执行:
E:\>sqlldr userid=xxx/yyy@dbxx control=e:\test.ctl log=e:\log.txt bad=e:\b
ad.txt

SQL*Loader: Release 8.1.7.0.0 - Production on 星期三 7月 20 21:28:06 2005

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

达到提交点,逻辑记录计数48

E:\>
 更详细的介绍请查看http://www-rohan.sdsu.edu/doc/oracle/server803/A54652_01/ch04.htm#793

方法二 利用PLSQL Developer

使用PLSQL Developer工具,这个可是大名鼎鼎的Oracle DBA最常使用的工具。
在单个文件不大的情况下(少于100000行),并且目的表结构已经存在的情况下——对于excel而言肯定不会超过了,因为excel文件的最大行为65536—— 可以全选数据COPY ,然后用PLSQL Developer工具。
1 在PLSQL Developer的sql window里输入select * from test for update;
2 按F8执行
3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后COMMIT提交即可。
还有很多第三方工具,Toad,PL/SQL Developer,SQL Navigator等等。

方法三 使用其它数据转移工具作中转站。

我使用的是Sql Server 2000。
先将excel表导入sqlserver数据库中,然后再从Sql server导入到oracle中。这两部操作都简单,如果不会随便查个帮助就可以了,要不然问我也行:)
这里有两个自己的经验:一是注意excel文件的版本和格式要与导入到sql server时的数据源匹配。如果导入到sql server时的数据源选Microsoft Excel 97-2000的话,而excel文件的版本为Micaosoft Excel 5.0/95 工作簿,则有可能出问题。关于如何看Excle文件格式,你打开excel文件,选择另存为,即可看到像Micaosoft Excel 5.0/95 工作簿或者是Microsoft Office Excle 工作簿等等其它的保存类型。
二就是由Sqlserver导入到oracle中时,记得将在oracle中的表名全部用大写。这条经验是花了好些时间才换来的。我刚开始导时,由于由excle导入sql server的表名为小写,然后倒到oracle中默认的也是小写,结果出现了一些很奇怪的情况,一个就是在Enterprise Manager Console中,在所有表的列表里面可以看到倒入的表,并且利用表数据编辑器还可以看到导入好的数据,但是在具体的表空间下确连表也看不到,实在是奇怪,我老是在想那表到底跑哪去了;二就是不管在具体表空间下看不看得到,表数据总是可以看到的,但是在Sql*Plus或者利用PLSQL Developer的Sql Window,写select语句查看数据,总是提示错误:Ora-00942:表或视图不存在。这个问题开始困扰了我好久,后来还是灵机一动,抱着试一试的心理在由sql server导入oracle时将表名改为全部大写(部分大写都不行),导入后不论Sql*Plus或者PLSQL Developer的Sql Window里写select语句(里面的表名用大写或者小写都行),都能正确的取出记录。很奇怪的问题,作为经验,如果哪位大侠有高见,请不吝赐教。
原文见http://jkflyfox.blogchina.com/2334307.html

分享到:
评论

相关推荐

    excel导入数据到Oracle数据库

    ### Excel导入数据到Oracle数据库详解 #### 一、前言 在日常工作中,我们经常会遇到需要将Excel中的数据批量导入到Oracle数据库的情况。这一过程不仅可以提高工作效率,还能确保数据的一致性和准确性。本文将详细...

    oracle Imp导入数据

    Oracle IMP 导入数据乱码问题解决方法 OracleIMP 命令是 Oracle 数据库中的一种数据导入工具,但是在使用 IMP 命令导入数据时,经常会碰到乱码问题。这篇文章将从根本上解决了导入数据乱码的根源及解决办法。 IMP ...

    oracle导入表导入数据实例

    以下是对"oracle导入表导入数据实例"的详细解析: 1. **SQL*Loader简介** SQL*Loader是Oracle提供的一种快速、高效的数据加载工具,能够从文本文件或者二进制文件中批量导入大量数据到Oracle表中。它允许用户...

    异构数据导入oracle方法

    这里我们将详细探讨几种常见的数据导入方法。 1. **TXT格式文档导入Oracle**: TXT文件是最基本的数据格式,Oracle提供了多种导入方式。SQL*Loader是Oracle自带的一种高效数据加载工具,它可以快速地将数据批量...

    如何通过txt文件批量导入数据到oracle数据库

    因此,我们需要掌握如何通过TXT文件批量导入数据到Oracle数据库的方法。下面,我们将详细介绍这一过程。 首先,我们需要了解TXT文件的数据格式。通常,TXT文件中的数据是以特定分隔符(如逗号、制表符等)区分各个...

    DBF格式的数据导入oracle的流程

    步骤 7: 导入数据 最后,我们可以点击“导入”(Import)按钮,将 DBF 文件的内容导入到 Oracle 对应的表中。 通过以上步骤,我们就可以成功地将 DBF 文件导入到 Oracle 数据库中了。需要注意的是,在导入过程中...

    oracle数据库导入数据以及创建用户

    本文将深入探讨如何导入数据到Oracle数据库以及创建新用户,这对于数据库管理员和开发者来说是至关重要的技能。以下是对标题"Oracle数据库导入数据以及创建用户"的详细解读: 1. 数据导入: - **SQL*Loader**:...

    excel导入数据到oracle工具

    "Excel导入数据到Oracle工具"就是为了方便用户将Excel中的数据高效、准确地导入到Oracle数据库而设计的。这个小工具简化了手动操作的繁琐步骤,提高了工作效率。 首先,我们需要了解Excel和Oracle的基本概念。Excel...

    用java编程将txt文件数据导入oracle

    "Java编程将TXT文件数据导入Oracle数据库" Java 编程将 TXT 文件数据导入 Oracle 数据库是指使用 Java 语言编写程序将 TXT 文件中的数据导入 Oracle 数据库中,以方便进行计算、统计等操作。下面将详细介绍该知识...

    DBF数据导入oracle表处理方法

    DBF 数据关联 Oracle 数据处理方法是指将 DBF 文件导入到 Oracle 表中的过程。为了实现这个过程,需要正确创建 DBF 的 ODBC 数据源,然后使用 PL/SQL 导入 DBF 文件。 创建 DBF 的 ODBC 数据源 在 Windows 7 操作...

    oracle数据导入到Mysq库

    "oracle2mysql"工具简化了这一过程,提供了一种有效的方法来实现数据的平滑过渡,但使用时仍需充分了解两个数据库系统的特性和差异,以及迁移工具的具体操作流程,以确保迁移的成功和数据的完整性。

    一种将oracle数据库内的数据导入到mongodb数据库的方法及系统.docx

    这种数据导入方法和系统对需要将现有Oracle数据库数据迁移到MongoDB的组织尤其有用,比如在大数据分析、互联网应用、物联网(IoT)项目等场景下,需要灵活的数据库架构和高性能的数据处理能力时。同时,对于那些希望...

    5种从Excel数据导入Oracle方法

    5种从Excel数据导入Oracle方法

    把mysql数据库中的数据导入到oracle数据库中

    - SQL Developer会自动将数据导入到该用户下,如果该用户不存在,则会自动创建用户并导入数据。 - 默认情况下,SQL Developer创建的Oracle用户默认表空间是`USERS`。为了避免`USERS`表空间溢出,建议预先创建用户...

    Oracle大数据量导入(CSV导入)

    这篇博文“Oracle大数据量导入(CSV导入)”将深入探讨如何使用Oracle的各种工具和技术来导入CSV(逗号分隔值)文件,这是一种常见的数据格式。下面我们将详细讨论相关知识点。 1. **SQL*Loader** SQL*Loader是...

    文件批量导入数据到oracle数据库

    在IT领域,文件批量导入数据到Oracle数据库是一项常见的任务,特别是在大数据处理和系统集成中。以下将详细解释这个过程涉及的关键知识点。 首先,"文件批量导入数据到Oracle数据库"指的是将一个或多个文本文件...

    xsl导数据到oracle

    标题“xsl导数据到oracle”涉及到的是将Excel(XSL是XML Spreadsheet Language,通常用于表示Excel文件)中的数据转换并导入到Oracle数据库的过程。这是一个常见的数据迁移或数据整合任务,对于数据分析、报表生成和...

    Excel数据导入Oracle.docx

    Excel数据导入Oracle是一种常见的数据迁移操作,通过将Excel表格中的数据导入到Oracle数据库中,可以实现数据的集成和共享。下面将详细介绍Excel数据导入Oracle的步骤和知识点。 1. 准备数据:在Excel中构造出需要...

    ORACLE导入数据文件到指定的表空间

    "ORACLE导入数据文件到指定的表空间"这个主题涉及了Oracle数据库的导入工具(IMP)、数据泵(IMPDP)以及如何规划和管理表空间。 首先,我们需要了解Oracle的导入工具IMP。IMP是Oracle Data Pump Import的简称,它...

Global site tag (gtag.js) - Google Analytics