blog.csdn.net/wzy0623/article/details/53894687 一、需求 windows上的一个文本文件filename.txt有22008080行,有两列数字,要导入oracle...压缩(zip)上传(scp)文件,把文件从windows传到oracle所在的linux机器上 下面步骤都在oracle服务器上执行 2. 解压缩 unzip filename.zip 3....使用sqlldr并行直接路径加载 sqlldr userid=user1/123456 control=a0.ctl direct=y parallel=true skip_index_maintenance...& sqlldr userid=user1/123456 control=a2.ctl direct=y parallel=true skip_index_maintenance=true & sqlldr...) oracle 并行原理深入解析及案例精粹
环境: 服务端:RHEL6.4 + Oracle 11.2.0.4 客户端:WIN10 + Oracle 11.2.0.1 client 目录: sqlldr语法 sqlldr实验准备 sqlldr...常规加载 sqlldr常规加载优化 sqlldr直接路径加载 sqlldr直接路径加载优化 References 1. sqlldr语法 用法: SQLLDR keyword=value [,keyword...有效的关键字: userid -- ORACLE 用户名/口令 control -- 控制文件名 log -- 日志文件名 bad -- 错误文件名...前者的例子是 'sqlldr scott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foo userid=scott/tiger'。...References 涂抹 Oracle[M]. 中国水利水电出版社, 2010.
yyyy-mm-dd')", c1 "SEQ_test_c1.nextval" ) BEGINDATA AAAAAAAAAA 2005-12-01 BBBBBBBBBB 2005-01-12 sqlldr
一、sqllder快速导入(服务端,oracle用户下执行,且文件和目录需要oracle的可执行权限) 1、创建目录、将目录权限授权给oracle用户(可省略) 使用root用户创建目录 示例:mkdir.../orctmp 将目录授权给oracle用户 示例:chown -R oracle:oracle /orctmp 注意事项:这里以在/目录下创建为例,如果已经存在orctmp目录则无需创建 2、创建表...SDATE “to_date(:SDATE, ‘yyyy-mm-dd hh24:mi:ss’)” 4、使用sqlldr导入数据 配置环境变量执行: sqlldr userid = oracle/oracle...--查看oracle可执行文件路径的命令 cd /oracle/11.2.0/db_1/bin --根据上面获取到的路径 sqlldr userid = oracle/oracle@192.168.0.1...服务器的bin(/oracle/11.2.0/db_1/bin)目录下,并重命名为sqluldr2.bin 注意事项:本文所写的对应的是Linux版本,Winodws版参考下载链接里的说明 2、使用sqlldr2
查看需要导入的文本内容 2.1 查看文本的行数 2.2 查看文本的大小 2.3 查看文本的内容 3 编写导数据的CTL文件 3.1 查看CTL文件 3.2 查看SHELL脚本 4 查看执行的效率 4.1 查看导入到ORACLE...数据的效率 4.2 查看统计的日志 5 效率总结 1 查看命令参数 $ sqlldr --help 有效的关键字: userid -- ORACLE 用户名/口令 control...前者的例子是 'sqlldr scott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foo userid=scott/tiger'。...du -sh test-sqlldr.csv 2.8G test-sqlldr.csv 2.3 查看文本的内容 $ head -n 2 test-sqlldr.csv K1|!?...需要的导入的表明 fields terminated by 后面跟着分隔符 trailing nullcols 字段的列表,需要全部大写与ORACLE保持一致,如果oracle字段小写需要改成小写
我们都知道处理LOB数据是很烦人的,在数据库设计完成后,我们常常需要装载测试数据,同样对于LOB很烦人,我们可以用sql*loader来实现, followin...
RHEL6 + Oracle 11g客户端快速部署 需求:只是用到客户端的sqlplus, sqlldr功能....--赋予sqlplus,sqlldr执行权限 cd $ORACLE_HOME chmod u+x sqlplus sqlldr 3.测试验证客户端sqlplus, sqlldr可用,任意目录输入命令均返回如下提示...用法: SQLLDR keyword=value [,keyword=value,...]...前者的例子是 'sqlldr scott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foo userid=scott/tiger'。...例如, 允许 'sqlldr scott/tiger control=foo logfile=log', 但是 不允许 'sqlldr scott/tiger control=foo log', 即使
SQL> conn oracle/oracle 已连接。...3、外部表acess paramter获得方式 sqlldr oracle/oracle control=user.ctl external_table=generate_only eg:...文件需要 CREATE DIRECTORY 语句 ———————————————————————— CREATE DIRECTORY SYS_SQLLDR_XT_TMPDIR_00000 AS ‘...D:\oracle_file\’ 用于外部表的 CREATE TABLE 语句: ———————————————————————— CREATE TABLE “SYS_SQLLDR_X_EXT_USER_DATA...DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR_00000 ACCESS PARAMETERS ( RECORDS DELIMITED BY
首先使用sql*loader对于clob,blob的数据相比普通表的处理要一些额外的工作,但是这些限制或者额外工作再oracle_datapump中就可以很方便的使用,oracle_datapump支持的数据类型要更丰富...可以看到sqlldr的速度做数据抽取大概耗费了14分钟,而且不包括2张含有clob的表,生成的dump文件有150G oracle_datapump的速度要更快一些。...当然了sqlldr可以使用客户端来抽取数据,而oracle_datapump只能基于服务端,灵活性上sqlldr要好一些。...可以看到采用sqlldr加载数据的时候,启用了150个并行线程,sqlldr开启了并行。耗费了大约80分钟,产生的日志数据量也不少有,230G左右。...--》数据纠错 在数据纠错方面,sqlldr提供了完整的处理机制,如果数据不符合要求被reject,可以生成对应的错误文件,里面包含所有被拒的数据,可以再次使用sqlldr来加载。
,如今国产化进行的如火如荼,这个工具也是在国产数据库迁移中使用比较广泛的工具,值得大家去学习与使用,今天要说的是 Oracle 数据库自带的数据导入工具 SQL*Loader(sqlldr),只要你安装了...用法 --示例sqlldr test/mypassword@pdb1 /home/oracle/test.ctl log=test.log [oracle@test19crac1 bin]$ sqlldr...For example, 'sqlldr scott/tiger control=foo logfile=log' is allowed, but 'sqlldr scott/tiger control...示例:使用 sqlldr,将 emp1.dat 导入到 scott 下的普通表 emp1 建立控制文件 [oracle]$vi /home/oracle/dir1/emp1.ctl...引擎导入(normal方式) [oracle@oracle~]$ cd/home/oracle/dir1 [oracle@oracledir1]$ll [oracle@oracledir1]$sqlldr
SQLLDR导入 1.1 简介 SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件(数据)迁移到ORACLE数据库中。...ORACLE 用户名/口令 control 控制文件名 log 日志文件名 bad 错误文件名...apps.cux_sqlldr_test_s FOR cux.cux_sqlldr_test_s; Sqlldr 有两种使用方式 (1) 在控制文件中包涵数据....创建一个文件命名为cux_sqlldr_test.ctl,在服务器下创建目录Sqlldr,在sqlldr下创建log和bad文件夹, 上传cux_sqlldr_test.ctl至服务器 ,如下图所示:...上传cux_sqlldr_test.txt,cux_sqlldr_test.ctl至服务器,cux_sqlldr_test.txt由上面PLSQL脚本生成,cux_sqlldr_test.ctl如下
数据库情况: 看不到有sqlldr命令等待的情况 CPU正常 手工执行上面命令可以成功,但是打印的日志非常多,如下图: 3 原因分析 网上搜这个问题竟然很多,原因有下面三类: 3.1 Oracle版本低...Oracle版本低,建议升级到10.2.0.2或以上,这个方案忽略,因为我们的数据库版本是Oracle 11.2.0.4.0。...3.2 数据落库情况 本以为sqlldr命令执行失败了,但是文件数据已经全部落到t_biz表。这说明命令执行成功了,只是Oracle没有给应用返回结果。难道是Oracle数据库hang住了?...但是上面的问题现场已经确认,Oracle并没有hang在sqlldr这个命令上。 3.3 最终答案 看了好多博客,最后发现竟然不是Oracle的原因。...的问题,但是后来研究发现,这个锅真的不能让Oracle来背。
如果是外部系统,其他数据库到oracle的数据迁移,使用文本式文件是最兼容的方式。 sqlldr的加载效率是很高的,同时在oracle 10g以后推出的oracle_loader效率也不容小视。...sqlldr提供了额外的功能来生成external_table的创建和insert脚本,不过control file是关键,今天尝试的时候就出现了一些问题。...> sqlldr n1/n1 control=NAME_DATA_sqlldr.ctl external_table=generate_only SQL*Loader: Release 11.2.0.2.0...查看control file的内容,如下: > less NAME_DATA_sqlldr.ctl LOAD DATA CONTINUEIF LAST !..."CONV_RUN_NO" NUMBER(3) ) ORGANIZATION external ( TYPE oracle_loader DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR
/u01/app/oracle/10g/bin/sqlldr 2.查看sqlldr的帮助信息, [oracle@oradb ~]$ sqlldr SQL*Loader: Release 10.2.0.1.0...An example of the former case is 'sqlldr scott/tiger foo'; an example of the latter is 'sqlldr control...[oracle@oradb sqlldr_demo]$ sqlldr robinson/robinson control=demo1.ctl SQL*Loader: Release 10.2.0.1.0...Error on table DEPT SQL> truncate table dept; --收到了SQL*Loader-601错误提示,清空原表 [oracle@oradb sqlldr_demo...对象权限、系统权限 Oracle 角色、配置文件 Oracle 联机重做日志文件(ONLINE LOG FILE) Oracle 控制文件(CONTROLFILE) Oracle 表空间与数据文件
sql*loader 可以理解sqlldr是基于客户端的,而言这个工具可能更具有通用性,因为一些数据在它面前都是可扩展的,我们可以尝试从sqlserver中导出数据,然后通过sqlldr来做为数据的导入...比较纳闷的是,sqlldr作为可扩展的数据导入工具,oracle为什么没有出类似sqlldr这样的数据导出工具,因为exp/expdp导出的是二进制文件,生成平面文件还是有一定的距离,在tom的网站答疑中...oracle_loader 外部表在较新的版本中开始出现,可能大家用的比较多的还是通过oracle_loader来读取alert日志的信息,其实在某种程度上而言,oracle_loader可以在某种程度上作为...sqlldr的补充和加强。...而无须消耗额外的数据空间,相比于sqlldr生成的dump而言,基于oracle_loader创建的外部表更加的具体,我们可以在数据导入前做一些相关的数据检查和稽核工作。
来填充数据来生成外部表 a.创建系统目录以及Oracle数据目录名来建立对应关系,同时授予权限 [oracle@oradb ~]$ mkdir -p /home/oracle/external_tb...3.使用SQLLDR提供外部表的定义并创建外部表 关于SQL*Loader的使用请参照:SQL*Loader使用方法 我们使用SQL*Loader和下面的这个控制文件来生成外部表的定义 [oracle...EXECUTE:这个值说明SQLLDR不会生成并执行一个SQL INSERT语句;而是会创建一个外部表,且使用一个批量SQL语句来加载。...[oracle@oradb ~]$ cat demo1.log --查看sqlldr产生的日志文件 Table DEPT_NEW, loaded from every logical record....--说明外部文件访问方式:oracle_loader或oracle_datapump(9i不支持) DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR_00000 --指定外部文件的缺省目录
在日常工作中;经常会遇到这样的需求: Oracle 数据表跟文本或者文件格式进行交互;即将指定文件内容导入对应的 Oracle 数据表中;或者从 Oracle 数据表导出。...本文来说说 Oracle 数据的加载和卸载。 Oracle中的DBLINK Oracle加载数据-外部表 Oracle加载数据-sqlldr工具 Oracle卸载数据-sqludr 一....Oracle加载数据-sqlldr工具 3.1 准备实验对象 创建文件lottu.txt;和表tbl_load_01。...trailing nullcols optionally enclosed by ' ' TRAILING NULLCOLS ( id , name, accountid ) 3.3 执行sqlldr...[oracle@oracle235 ~]$ sqlldr 'lottu/"li0924"' control=/home/oracle/lottu.ctl log=/home/oracle/lottu.log
27 08:09:25 2014 Copyright (c) 1982, 2011, Oracle and/or its affiliates....[ora11g@rac1 sqlldr]$ sqlldr n1/n1 control=sqlldr.ctl data=t.lst SQL*Loader: Release 11.2.0.3.0 - Production...on Tue May 27 08:14:44 2014 Copyright (c) 1982, 2011, Oracle and/or its affiliates....8s [ora11g@rac1 sqlldr]$ sqlldr n1/n1 direct=true control=sqlldr.ctl data=t.lst SQL*Loader: Release...11.2.0.3.0 - Production on Tue May 27 07:56:31 2014 Copyright (c) 1982, 2011, Oracle and/or its affiliates
SQL*Loader 是用于将外部数据进行批量高速加载的数据库的最高效工具,可用于将多种平面格式文件加载到Oracle数据库。...关于SQL*Loader的具体用法可以参考Oracle Utilities 手册或者SQL*Loader使用方法。那么如何以SQL*Loader能识别的方式高效的卸载数据呢?...date 'ddmmyyyyhh24miss' , SAL char(44 ), COMM char(44 ), DEPTNO char(44 ) ) --下面我们先truncate表emp,然后尝试使用sqlldr...--装载数据到emp robin@SZDB:/u02/database/SYBO2SZ/BNR/dump> sqlldr scott/tiger control=emp.ctl data=emp.dat...''''; RAISE; END; END run; END unloader; / 4、小结 a、本文描述了单表以及多表如何高速卸载数据,并且批量生成sqlldr
sqlldr userid=n1/n1@xxxx control=a.ctl 也没有报错,就提示了一行信息。...但是也不算错误,查看表里,没有数据 DUM1102 /oravl01/oracle> sqlldr userid=n1/n1@xxxx control='/oravl01/oracle/a.ctl' SQL...*Loader: Release 11.2.0.2.0 - Production on Fri Mar 21 17:16:58 2014 Copyright (c) 1982, 2009, Oracle...FIELDS TERMINATED BY "," TRAILING NULLCOLS (sql_time,sql_id,cpu_time,disk_time,exec_time,elapsed_s) sqlldr...userid=n1/n1@xxxx control=a.ctl data=a.data DUM1102 /oravl01/oracle> sqlldr userid=n1/n1@xxxx control
领取专属 10元无门槛券
手把手带您无忧上云