sqlldr是什么文件|问个菜鸟SQLLDR问题控制文件怎么设置让字段导入默认值

❶ 如何用shell脚本写sqlldr入库

很简单,脚本就不发了,只告诉你思维1、sqlldr需要一定格式的源文件才能入库,故SHELL脚本主要工作是写该源文件2、写该源文件包括2部分,1部分文件头(一些要插入什么表名,字段以什么为分隔符),然后就是文件体,主要是字段值呢3、sqlldr user/[email protected] control=源文件.txt4、运行即可分享

❷ 问个菜鸟SQLLDR问题,控制文件怎么设置让字段导入默认值

sqlldr里面没法实现。来只能使用其他途径源。 用sqlldr把文件导入临时表,再编程把你该组合的n行放入到你的一个字段中去,这个很容易实现。本地和远程都能用sqlldr的本地的打开CMD , 输入sqlldr userid=user/password@数据库名 control=路径/etl.ctl direct=true就可以导入了~下面是etl.ctl文件load data infile '路径/文件名'

❸ linux sqlldr 配置文件在哪

一般文件名都还是写成sqlldr。你只要用find / -name搜索下就知道了。 。或者用rpm -qa |grep sqlldr查看安装信息

❹ oracle 客户端没有sqlldr 怎么添加

Oracle不管是服务端或者客户端,安装好后sqlldr都是默认有的啊直接个sqlldr文件 进去 然后修改下环境变量 局可以了

❺ oracle 怎么用sqlldr导入dat文件

1.建表:SQL> create table tb_boxnumber(boxnumber varchar2(30),Status varchar2(8));Table created.SQL>2.创建一个控制文件:[email protected]:~> vi 123.ctlload dataappendinto table tb_boxnumber //定义要导入的表fields terminated ','trailing nullcolstruncate //这个地方可以对表进行truncate,根据自己情况是否使用(boxnumber) //定义导入的字段3.使用sqlldr导入数据:使用ftp工具,把你要导入的数据上传到服务器上,我测试过导入txt和dat的文件格式,使用如下命令:[email protected]:~> sqlldrzxdbp_test/[email protected] control=123.ctl data=1.dat 其中1.dat是我上传的文件

❻ sqlldr要导入的数据文件比表中的列多怎么办

您好,很高兴为您解答。

方式一:修改数据文件,将多余的数据删除,不过以这种方式处理,小数据量时还算可行,一旦数据文件较大,几百兆甚至上千兆,修改数据文件耗时耗力,这时我们就需要Plan B。

方式二:例

SMITH 7369 CLERK 800 20 ALLEN 7499 SALESMAN 1600 30 WARD 7521 SALESMAN 1250 30 JONES 7566 MANAGER 2975 20 MARTIN 7654 SALESMAN 1250 30 BLAKE 7698 MANAGER 2850 30 CLARK 7782 MANAGER 2450 10 KING 7839 PRESIDENT 5000 10 TURNER 7844 SALESMAN 1500 30 JAMES 7900 CLERK 950 30 FORD 7902 ANALYST 3000 20 MILLER 7934 CLERK 1300 10

示例代码保存为数据文件ldr_case6.dat。

我们希望导入第1、3、4列而跳过2、5两列(注意这里指的不是字符列),创建控制文件如下:

LOADDATAINFILEldr_case6.datTRUNCATEINTOTABLEBONUS(ENAMEposition(1:6),TCOLFILLERposition(8:11),JOBposition(13:21),SALposition(23:26))

示例代码保存为控制文件ldr_case6.ctl。

SQLLDR的控制文件中对列定义时支持FILLER关键字,可以用来指定过滤列,在上述控制文件中,我们就使用该关键字来过滤列,相当于第8到第11列之间的数据不导入。

事实上由于此处为定长字串,我们在控制文件中指定的position参数,已经限定了读取的内容,你甚至可以删除控制文件中TCOL FILLER position(8:11)那行。

执行SQLLDR命令:

F:oraclescript>SQLLDR SCOTT/TIGER CONTROL=LDR_CASE6.CTL SQL*Loader: Release 10.2.0.1.0 – Proction on 星期三 3月 11 23:13:33 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. 达到提交点 – 逻辑记录计数 11 达到提交点 – 逻辑记录计数 12

SQL*Plus中查看导入结果:

SQL> SELECT * FROM BONUS; ENAME JOB SAL COMM ———- ——— ——— ———- SMITH CLERK 800 ALLEN SALESMAN 1600 WARD SALESMAN 1250 JONES MANAGER 2975 MARTIN SALESMAN 1250 BLAKE MANAGER 2850 CLARK MANAGER 2450 KING PRESIDENT 5000 TURNER SALESMAN 1500 JAMES CLERK 950 FORD ANALYST 3000 MILLER CLERK 1300

结果符合要求,不过,如果数据文件中字符串不是定长格式,而是通过分隔符来处理的,那控制文件中就需要注意,如数据文件如下:

SMITH,7369,CLERK,800,20 ALLEN,7499,SALESMAN,1600,30 WARD,7521,SALESMAN,1250,30 JONES,7566,MANAGER,2975,20 MARTIN,7654,SALESMAN,1250,30 BLAKE,7698,MANAGER,2850,30 CLARK,7782,MANAGER,2450,10 KING,7839,PRESIDENT,5000,10 TURNER,7844,SALESMAN,1500,30 JAMES,7900,CLERK,950,30 FORD,7902,ANALYST,3000,20 MILLER,7934,CLERK,1300,10

示例代码保存为数据文件ldr_case7.dat。

创建控制文件,此时控制文件中必须指定FILLER,不然列值就有可能不对应。例如,创建控制文件如下:

LOADDATAINFILEldr_case7.datTRUNCATEINTOTABLEBONUSFIELDSTERMINATEDBY","(ENAME,TCOLFILLER,JOB,SAL)

示例代码保存为控制文件ldr_case7.ctl。

执行SQLLDR命令:

F:oraclescript>SQLLDR SCOTT/TIGER CONTROL=LDR_CASE7.CTL SQL*Loader: Release 10.2.0.1.0 – Proction on 星期三 3月 11 23:27:21 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. 达到提交点 – 逻辑记录计数 11 达到提交点 – 逻辑记录计数 12

SQL*Plus中查看导入结果:

SQL> SELECT * FROM BONUS; ENAME JOB SAL COMM ———- ——— ——— ———- SMITH CLERK 800 ALLEN SALESMAN 1600 WARD SALESMAN 1250 JONES MANAGER 2975 MARTIN SALESMAN 1250 BLAKE MANAGER 2850 CLARK MANAGER 2450 KING PRESIDENT 5000 TURNER SALESMAN 1500 JAMES CLERK 950 FORD ANALYST 3000 MILLER CLERK 1300

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~O(∩_∩)O~

❼ 如何使用SQLloader导入数据

1、打开要导出为oracle的Excel,将Excel文件保存为test.txt文件(文件->另存为)2、创建SQL*Loader输入数据所需要的文件,均保存到C:,用记事本编辑: 控制文件:input.ctl,内容如下:load data–1、控制文件标识infile 'test.txt' –2、要输入的数据文件名为.txt,注意路径append intotable Table_Name –3、向oracle表中追加记录fields terminatedby X'09' –4、字段终止于X'09',是一个制表符(TAB)(Col1,Col2…) 定义列对应顺序a、insert,为缺省方式,在数据装载开始时要求表为空b、append,在表中追加新记录c、replace,删除旧记录,替换成新装载的记录d、truncate,同上3、在DOS窗口下使用SQL*Loader命令实现数据的输入C:>sqlldr userid=system/managercontrol=input.ctl默认日志文件名为:input.log默认坏记录文件为:input.bad4、ok,现在就可以查看数据是否导入了。ORACLESQL Loader的详细语法 SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。 要使用SQL*Loader,必须编辑一个控制文件(.ctl),及一个数据文件(.dat) 首先,我们认识一下SQL*LOADER在windows下,SQL*LOADER的命令为SQLLDR,在UNIX下一般为sqlldr/sqlload。 如执行:d:\oracle>sqlldr 用法: SQLLOAD 关键字=值 [,keyword=value,…]例如:>sqlldr user/pass control=控制文件名 log=日志文件名SQL*LOADER参数列表参数名称 功能描述Userid 数据库用户名及口令Control 控制文件名称,描述数据加载的文件信息Log 日志文件名称,用于记录数据加载过程的信息Bad 坏信息文件名称,用于记录不符合要求的数据信息Data 数据文件名称,记录要加载的原始数据Discard 丢掉文件名称,记载了不满足条件而被过滤的数据Discardmax 允许丢掉数据量,默认为全部丢掉Skip 跳过几个逻辑记录,缺省为0Load 要加载的记录数,默认为全部加载Errors 允许出现的错误数,缺省为50Direct 是否使用直接路径加载数据,默认为falseReadsize 缓冲区大小默认为1048576字节1、首先创建空表SQL>create table stu(stunonumber(5),name varchar(10),addr varchar(20));数据文件格式分为自由格式和固定格式固定格式数据文件(mydata.txt)001 SHUI LIAOHE002 LIU BEIJING其控制文件分别如下#Load.ctlLoad dataInfile mydata.txtInto table stu(stuno position(01:03) integer external,Name position(05:08) varchar,Addr position(10:16) varchar)导入数据>sqlldr test1/test1 control=’d:\load.ctl’log=’d:\load.log’自由格式数据文件(mydata.txt)003,”shuics”,”new york”004,”liujianxin”,”Beijing”005,”shuiym”,”Canada”其控制文件如下#load.ctlLoad dataInfile mydata.txtAppend|insert|replace|truncateInto table stuFields terminated by ‘,’Optionally enclosed by ‘”’(stuno,name,addr)导入数据将Excel数据加载到oracle数据库1、将excel文件另存为文本文件(制表符分隔)2、创建控制文件如下Load dataInfile ‘book.txt’AppendInto table stuFields terminated by X’09’(stuno,name,addr)其中X’09’是一个制表符(TAB)

❽ sqlldr 可以导入什么格式文件

要把unicode格式(其中有UTF16编码与UTF8编码的)的文件导入数据库,除了在control文件中设定一般的参数之外,另外还要加入下面两个参数。CHARACTERSET : 它指明你的导入文件是什么格式的,可以是UTF16,UTF8. 如果这里指定的编码方式与你导入的文件不相符导入会出错。例如: CHARACTERSET 'UTF16'LENGTH : 此参数是接着放在CHARACTERSET参数之后的,Oracle字符字段的长度可以是BYTE或CHARACTER,如果你的导入文件是多字节字符集的,此参数要设定为CHARACTER,否则在导入时会因长度不够会被reject.LENGTH CHARACTER另外对于UTF16的文件,SQLLDR默认是CHARACTER,所以在control文件里不设定也不会有问题,对于文件开头带Unicode Signature (BOM -Byte Order)Mark的,SQLLDR也是可以正确处理的.CONTROL文件1LOAD DATA CHARACTERSET 'UTF16'BADFILE 'sample.bad'DISCARDFILE 'sample.dsc'REPLACEINTO TABLE "COUNTRIES"fields terminated by '/t'(LOCATION CHAR(20),CNTRY_REF CHAR(20),CNTRY_ISO_CODE CHAR(10),CNTRY_DESC CHAR(100),LANG_CODE CHAR(20),SOURCE CHAR(50),SOURCE_STATUSCHAR(20),SOURCE_SYSTEM CHAR(20))CONTROL文件2LOAD DATA CHARACTERSET 'UTF8'LENGTH CHARACTERBADFILE 'sample.bad'DISCARDFILE 'sample.dsc'REPLACEINTO TABLE "COUNTRIES"fields terminated by '/t'(LOCATION CHAR(20),CNTRY_REF CHAR(20),CNTRY_ISO_CODE CHAR(10),CNTRY_DESC CHAR(100),LANG_CODE CHAR(20),SOURCE CHAR(50),SOURCE_STATUS CHAR(20),SOURCE_SYSTEM CHAR(20))


赞 (0)