今天看了篇博客,http://blog.csdn.net/jccg1000196340/article/details/19162553,介绍使用sqlldr导入数据到oracle,这个命令没用过,今天第一次用,自己测试成功了,写篇博文纪念下。
首先,带上参考的博文连接:
http://www.cnblogs.com/flish/archive/2010/05/31/1748221.html
注意,sqlldr是cmd命令行下的,不要试图在pl/sql下使用,我第一次也是在pl/sql下使用,结果如下:
开始我以为是登录的用户没权限,使用sysdba登录结果也一样,正确的方式是,打开cmd命令行,敲入sqlldr;结果为:
可以看到,各个参数都有详细的介绍,我就不一一介绍了,下面介绍具体的实例:
首先新建一个测试表:
create table test_sqlldr_users( user_id number, --用户 ID user_name varchar2(50), --用户名 login_times number, --登陆次数 last_login date --最后登录日期 );
插入测试数据:
insert into test_sqlldr_users values(1,'中文测试',3,sysdate); insert into test_sqlldr_users values(2,NULL,5,to_date('2014-02-15','YYYY-MM-DD')); insert into test_sqlldr_users values(3,'隔叶黄莺',8,to_date('2014-02-02','YYYY-MM-DD')); insert into test_sqlldr_users values(4,'秋风落叶',NULL,NULL); insert into test_sqlldr_users values(5,'秋叶',1,to_date('2014-02-23','YYYY-MM-DD')); insert into test_sqlldr_users values(6,'测试中文',3,to_date('2014-02-13','YYYY-MM-DD')); insert into test_sqlldr_users values(7,'秋风落叶',NULL,sysdate);
使用pl/sql导出测试数据到cvs文件。
新建控制文件test_sqlldr_users.ctl:
OPTIONS (skip=1,rows=128)--sqlldr 命令显示的选项可以写到这里边来,skip=1 用来跳过数据中的第一行 LOAD DATA INFILE "test_sqlldr_users_data.csv" truncate--操作类型,用 truncate table 来清除表中原有记录 INTO TABLE test_sqlldr_users Fields terminated by "," -- 数据中每行记录用 "," 分隔 Optionally enclosed by '"' -- 数据中每个字段用 '"' 框起,比如字段中有 "," 分隔符时 trailing nullcols --表的字段没有对应的值时允许为空 ( user_id, user_name, login_times, last_login DATE "YYYY-MM-DD HH24:MI:SS" )
相信各位可以一眼看出上面的含义,这里说明下,在操作类型位置,可以使用以下值:
1) insert --为缺省方式,在数据装载开始时要求表为空 2) append --在表中追加新记录 3) replace --删除旧记录(用 delete from table 语句),替换成新装载的记录 4) truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录
这里啰嗦下,操作类型使用insert,表要为空,否则报错,如下:
操作类型如使用replace,会将表清空,各位不要以为是只替换存在的值,使用它记得先备份数据,否则,数据这剩下插入的新值了。
在cmd命令行下敲入sqlldr命令,导入数据:
sqlldr tmd/tmd@xe control=test_sqlldr_users.ctl log=f:/saveFile/tmp/sqlldr.log bad =f:/saveFile/tmp/sqlldr.log
记得把log参数带上,有时候,窗口显示达到提交点 - 逻辑记录计数*,但是数据库就是没数据,这时候可能是导入时候某个值出现错误导致插入不成功,下图是我测试成功时的截图。
日志文件如下:
最后我要强调下,我第一次导入时候发现数据库中文里面全部是乱码,我数据库是utf-8编码的,cmd下是系统默认编码gbk,所以就猜想导入时候也是采用了默认编码gbk,导致乱码,解决办法是,把数据文件改成gbk编码的,在导入就OK了。
现学现卖,让各位见笑了。
全文完。
相关推荐
以下是对“sqlldr导入带有自动增加的数据”这一主题的详细解析,基于给定的文件信息。 ### SQL*Loader简介 SQL*Loader是Oracle提供的一个实用程序,用于快速、高效地将大量数据加载到Oracle数据库中。它支持多种...
### SQL*Loader (SQLLDR)导入CSV文档详解 #### SQL*Loader简介 SQL*Loader是Oracle数据库的一个强大工具,用于高效地将大量数据从外部文件加载到Oracle数据库中的表中。它支持多种数据格式,包括CSV、文本、二进制...
`SQL*Loader`(简称sqlldr)是Oracle数据库提供的一种批量数据加载工具,它能够快速、方便地将大量结构化数据从文本文件导入到Oracle数据库中。下面将详细介绍sqlldr的工作原理、配置过程以及如何利用它进行大量数据...
在“oracle sqlldr多文件批量导入”这个场景下,我们需要掌握如何利用SQL*Loader一次性处理多个数据文件的导入操作。下面我们将详细讲解这个主题。 首先,了解SQL*Loader的基本结构。SQL*Loader通过控制文件(.ctl...
Oracle的SQL*Loader(简称SQLLDR)工具就是这样一个强大的数据加载器,它能快速高效地将数据从外部文件批量导入到数据库中。结合批处理(BAT)脚本,我们可以自动化这个过程,提高工作效率。下面我们将详细探讨如何...
Oracle数据库提供了一套强大的工具,包括SQL*Loader(简称SQLLDR)和SQL Ultra Data Recorder 2(SQLULDR2),来帮助我们处理这些任务。下面将详细阐述如何使用这两个工具以及如何通过`MERGE INTO`语句进行数据合并...
Oracle sqlldr 大批量数据导入工具使用实例,通过Oracle 自带的sqlldr 工具可快速导入大批量的数据至Oracle中。 工具使用前提条件: 1.安装的Oracle Client 不能为精简版,要不然就找不到sqlldr.exe 2.将Oracle的...
同时代码还会生成sqlldr命令需要用到的control文件和bat文件,以及连接Oracle的配置文件,只要将MySQL导出的数据文件合到一起,执行bat文件,即可完成数据导入到Oracle的任务。所有文件都是以导入导出的那张表的表名...
在Oracle数据库管理中,"spool"和"sqlldr"是两种非常实用的工具,用于数据的导出和导入操作。下面将详细解释这两个概念及其使用方法。 **1. Spool导出** Spool是Oracle SQL*Plus中的一个功能,它允许用户将SQL*...
SQL*Loader(简称sqlldr)是Oracle数据库提供的一款强大的数据加载工具,用于将文本文件中的数据高效地导入到数据库表中。在这个过程中,通过自动生成控制文件,可以实现自动化导入,甚至达到备份的目的。以下是对这...
SQL*Loader(简称sqlldr)是...正确理解和使用sqlldr能够显著提高数据导入的效率,对数据库管理员和开发人员来说是必备的技能之一。在实际操作中,应结合具体场景选择合适的参数和策略,确保数据导入的准确性和高效性。
C# 通过oracle sqlldr 将TXT批量导入oracle 一个文件夹里有大量的TXT文件,以"~"区分各字段. 这个程序能批量将此文件夹里的所有的文件导入oralce 并按日期把已导入的TXT文件复制另一个文件夹
在Oracle数据库环境中,SQL*Loader(SQL Loader)是一款强大的数据导入工具,用于将大量数据从文本文件快速批量地加载到数据库表中。然而,在实际操作过程中,用户可能会遇到各种问题,其中“导入乱码问题”尤为常见...
VS2013 C#.Net开发 C#利用SqlLdr 数据批量导入Oracle程序源码,高效可达万行/秒。 1.可多表同时执行 2.可视导入信息反馈,可查看错误数据及导入日志。 3.内含 批处理 执行方法 及 导入 ldr Demo文件。 4.内含导数据...
根据题目中的描述,“sqlldr报超出字符长度错误”,这一问题主要是因为源文件中的数据长度超出了目标表中相应列的定义长度。在SQL*Loader执行过程中,如果某一字段的实际值长度超过了目标表该列的长度,就会触发此...
oracle11g基本客户端,主要是sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...
SQL*Loader(简称sqlldr)是Oracle数据库提供的一款强大的数据加载工具,用于高效地将大量数据从外部文件导入到数据库表中。在这个场景下,我们关注的是如何利用sqlldr将Excel数据快速批量地导入到Oracle数据库。...
利用oracle的sqlldr功能可添加控制规则的导入数据
sqlldr配置文件详解 python脚本根据csv文件批量生成sqlldr传输所需ctl文件和sqlldr脚本, 修改参数为自己本机配置后,运行脚本,复制输出结果到cmd下,直接...批量sqlldr导入.py 批量导入文件SQL语句 示例:祁东县.ctl
用于手工将数据导入SQL SERVER数据库中,暂时支持2008和2012,2016没有试过,可以很快速的导入数据入库。欢迎大家下载