首页 oracle sql loader全攻略

oracle sql loader全攻略

举报
开通vip

oracle sql loader全攻略oraclesqlloader全攻略parti 一:sqlloader的特点oracle自己带了很多的工具可以用来进行数据的迁移、备份和恢复等工作。但是每个工具都有自己的特点。比如说exp和imp可以对数据库中的数据进行导出和导出的工作,是一种很好的数据库备份和恢复的工具,因此主要用在数据库的热备份和恢复方面。有着速度快,使用简单,快捷的优点;同时也有一些缺点,比如在不同版本数据库之间的导出、导入的过程之中,总会出现这样或者那样的问题,这个也许是oracle公司自己产品的兼容性的问题吧。sqlloader工具却...

oracle sql loader全攻略
oraclesqlloader全攻略parti 一:sqlloader的特点oracle自己带了很多的工具可以用来进行数据的迁移、备份和恢复等工作。但是每个工具都有自己的特点。比如说exp和imp可以对数据库中的数据进行导出和导出的工作,是一种很好的数据库备份和恢复的工具,因此主要用在数据库的热备份和恢复方面。有着速度快,使用简单,快捷的优点;同时也有一些缺点,比如在不同版本数据库之间的导出、导入的过程之中,总会出现这样或者那样的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,这个也许是oracle公司自己产品的兼容性的问题吧。sqlloader工具却没有这方面的问题,它可以把一些以文本格式存放的数据顺利的导入到oracle数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。缺点就速度比较慢,另外对blob等类型的数据就有点麻烦了。二:sqlloader的帮助C:\>sqlldrSQL*Loader:Release9.2.0.1.0-Productionon星期六10月914:48:122004Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.用法:SQLLDRkeyword=value[,keyword=value,...]有效的关键字:userid--ORACLEusername/passwordcontrol--Controlfilenamelog--Logfilenamebad--Badfilenamedata--Datafilenamediscard--Discardfilenamediscardmax--Numberofdiscardstoallow(全部默认)skip--Numberoflogicalrecordstoskip(默认0)load--Numberoflogicalrecordstoload(全部默认)errors--Numberoferrorstoallow(默认50)rows--Numberofrowsinconventionalpathbindarrayorbetweendirectpathdatasaves(默认:常规路径64,所有直接路径)bindsize--Sizeofconventionalpathbindarrayinbytes(默认256000)silent--Suppressmessagesduringrun(header,feedback,errors,discards,partitions)direct--usedirectpath(默认FALSE)parfile--parameterfile:nameoffilethatcontainsparameterspecificationsparallel--doparallelload(默认FALSE)file--Filetoallocateextentsfromskip_unusable_indexes--disallow/allowunusableindexesorindexpartitions(默认FALSE)skip_index_maintenance--donotmaintainindexes,markaffectedindexesasunusable(默认FALSE)readsize--SizeofReadbuffer(默认1048576)external_table--useexternaltableforload;NOT_USED,GENERATE_ONLY,EXECUTE(默认NOT_USED)columnarrayrows--Numberofrowsfordirectpathcolumnarray(默认5000)streamsize--Sizeofdirectpathstreambufferinbytes(默认256000)multithreading--usemultithreadingindirectpathresumable--enableordisableresumableforcurrentsession(默认FALSE)resumable_name--textstringtohelpidentifyresumablestatementresumable_timeout--waittime(inseconds)forRESUMABLE(默认7200)date_cache--size(inentries)ofdateconversioncache(默认1000)PLEASENOTE:命令行参数可以由位置或关键字指定。前者的例子是'sqlloadscott/tigerfoo';后一种情况的一个示例是'sqlldrcontrol=foouserid=scott/tiger'.位置指定参数的时间必须早于但不可迟于由关键字指定的参数。例如,允许'sqlldrscott/tigercontrol=foologfile=log',但是不允许'sqlldrscott/tigercontrol=foolog',即使参数'log'的位置正确。C:\>三:sqlloader使用例子a)SQLLoader将Excel数据导出到Oracle1.创建SQL*Loader输入数据所需要的文件,均保存到C:\,用记事本编辑:控制文件:input.ctl,内容如下:  loaddata          --1、控制文件标识  infile'test.txt'      --2、要输入的数据文件名为test.txt  appendintotabletest    --3、向 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf test中追加记录  fieldsterminatedbyX'09'  --4、字段终止于X'09',是一个制表符(TAB)  (id,username,password,sj)  -----定义列对应顺序a、insert,为缺省方式,在数据装载开始时要求表为空b、append,在表中追加新记录c、replace,删除旧记录,替换成新装载的记录d、truncate,同上在DOS窗口下使用SQL*Loader命令实现数据的输入C:\>sqlldruserid=system/managercontrol=input.ctl默认日志文件名为:input.log默认坏记录文件为:input.bad2.还有一种 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 可以把EXCEL文件另存为CSV(逗号分隔)(*.csv),控制文件就改为用逗号分隔LOADDATAINFILE'd:\car.csv'APPENDINTOTABLEt_car_tempFIELDSTERMINATEDBY","(phoneno,vip_car)b)在控制文件中直接导入数据1、控制文件test.ctl的内容--TheformatforexecutingthisfilewithSQLLoaderis:--SQLLDRcontrol=Besuretosubstituteyour--versionofSQLLOADERandthefilenameforthisfile.LOADDATAINFILE*BADFILE'C:\DocumentsandSettings\Jackey\桌面\WMCOUNTRY.BAD'DISCARDFILE'C:\DocumentsandSettings\Jackey\桌面\WMCOUNTRY.DSC'INSERTINTOTABLEEMCCOUNTRYFieldsterminatedby";"Optionallyenclosedby'"'(COUNTRYIDNULLIF(COUNTRYID="NULL"),COUNTRYCODE,COUNTRYNAME,CONTINENTIDNULLIF(CONTINENTID="NULL"),MAPIDNULLIF(MAPID="NULL"),CREATETIMEDATE"MM/DD/YYYYHH24:MI:SS"NULLIF(CREATETIME="NULL"),LASTMODIFIEDTIMEDATE"MM/DD/YYYYHH24:MI:SS"NULLIF(LASTMODIFIEDTIME="NULL"))BEGINDATA1;"JP";"Japan";1;9;"09/16/200416:31:32";NULL2;"CN";"China";1;10;"09/16/200416:31:32";NULL3;"IN";"India";1;11;"09/16/200416:31:32";NULL4;"AU";"Australia";6;12;"09/16/200416:31:32";NULL5;"CA";"Canada";4;13;"09/16/200416:31:32";NULL6;"US";"UnitedStates";4;14;"09/16/200416:31:32";NULL7;"MX";"Mexico";4;15;"09/16/200416:31:32";NULL8;"GB";"UnitedKingdom";3;16;"09/16/200416:31:32";NULL9;"DE";"Germany";3;17;"09/16/200416:31:32";NULL10;"FR";"France";3;18;"09/16/200416:31:32";NULL11;"IT";"Italy";3;19;"09/16/200416:31:32";NULL12;"ES";"Spain";3;20;"09/16/200416:31:32";NULL13;"FI";"Finland";3;21;"09/16/200416:31:32";NULL14;"SE";"Sweden";3;22;"09/16/200416:31:32";NULL15;"IE";"Ireland";3;23;"09/16/200416:31:32";NULL16;"NL";"Netherlands";3;24;"09/16/200416:31:32";NULL17;"DK";"Denmark";3;25;"09/16/200416:31:32";NULL18;"BR";"Brazil";5;85;"09/30/200411:25:43";NULL19;"KR";"Korea,Republicof";1;88;"09/30/200411:25:43";NULL20;"NZ";"NewZealand";6;89;"09/30/200411:25:43";NULL21;"BE";"Belgium";3;79;"09/30/200411:25:43";NULL22;"AT";"Austria";3;78;"09/30/200411:25:43";NULL23;"NO";"Norway";3;82;"09/30/200411:25:43";NULL24;"LU";"Luxembourg";3;81;"09/30/200411:25:43";NULL25;"PT";"Portugal";3;83;"09/30/200411:25:43";NULL26;"GR";"Greece";3;80;"09/30/200411:25:43";NULL27;"IL";"Israel";1;86;"09/30/200411:25:43";NULL28;"CH";"Switzerland";3;84;"09/30/200411:25:43";NULL29;"A1";"AnonymousProxy";0;0;"09/30/200411:25:43";NULL30;"A2";"SatelliteProvider";0;0;"09/30/200411:25:43";NULL31;"AD";"Andorra";3;0;"09/30/200411:25:43";NULL32;"AE";"UnitedArabEmirates";1;0;"09/30/200411:25:43";NULL33;"AF";"Afghanistan";1;0;"09/30/200411:25:43";NULL34;"AG";"AntiguaandBarbuda";7;0;"09/30/200411:25:43";NULL35;"AI";"Anguilla";7;0;"09/30/200411:25:43";NULL36;"AL";"Albania";3;0;"09/30/200411:25:43";NULL37;"AM";"Armenia";3;0;"09/30/200411:25:43";NULL38;"AN";"NetherlandsAntilles";3;0;"09/30/200411:25:43";NULL39;"AO";"Angola";2;0;"09/30/200411:25:43";NULL40;"AP";"Asia/PacificRegion";2;0;"09/30/200411:25:43";NULL41;"AQ";"Antarctica";8;0;"09/30/200411:25:43";NULL42;"AR";"Argentina";5;0;"09/30/200411:25:43";NULL43;"AS";"AmericanSamoa";6;0;"09/30/200411:25:43";NULL44;"AW";"Aruba";5;0;"09/30/200411:25:43";NULL45;"AZ";"Azerbaijan";1;0;"09/30/200411:25:43";NULL46;"BA";"BosniaandHerzegovina";3;0;"09/30/200411:25:43";NULL47;"BB";"Barbados";5;0;"09/30/200411:25:43";NULL48;"BD";"Bangladesh";1;0;"09/30/200411:25:43";NULL49;"BF";"BurkinaFaso";2;0;"09/30/200411:25:43";NULL50;"BG";"Bulgaria";3;0;"09/30/200411:25:43";NULL51;"BH";"Bahrain";1;0;"09/30/200411:25:43";NULL52;"BI";"Burundi";2;0;"09/30/200411:25:43";NULL53;"BJ";"Benin";2;0;"09/30/200411:25:43";NULL54;"BM";"Bermuda";4;0;"09/30/200411:25:43";NULL55;"BN";"BruneiDarussalam";1;0;"09/30/200411:25:43";NULL56;"BO";"Bolivia";5;0;"09/30/200411:25:43";NULL57;"BS";"Bahamas";7;0;"09/30/200411:25:43";NULL58;"BT";"Bhutan";1;0;"09/30/200411:25:43";NULL59;"BV";"BouvetIsland";5;0;"09/30/200411:25:43";NULL60;"BW";"Botswana";2;0;"09/30/200411:25:43";NULL61;"BY";"Belarus";3;0;"09/30/200411:25:43";NULL2、执行导入命令C:\>sqlldruserid=system/managercontrol=test.ctl    partiiSQL*Loader是Oracle数据库导入外部数据的一个工具.它和DB2的Load工具相似,但有更多的选择,它支持变化的加载模式,可选的加载及多表加载.  如何使用SQL*Loader工具  我们可以用Oracle的sqlldr工具来导入数据。例如:  sqlldrscott/tigercontrol=loader.ctl  控制文件(loader.ctl)将加载一个外部数据文件(含分隔符).loader.ctl如下:  loaddata  infile'c:\data\mydata.csv'  intotableemp  fieldsterminatedby","optionallyenclosedby'"'  (empno,empname,sal,deptno)  mydata.csv如下:  10001,"ScottTiger",1000,40  10002,"FrankNaude",500,20  下面是一个指定记录长度的示例控制文件。"*"代表数据文件与此文件同名,即在后面使用BEGINDATA段来标识数据。  loaddata  infile*  replace  intotabledepartments  (deptposition(02:05)char(4),  deptnameposition(08:27)char(20)  )  begindata  COSCCOMPUTERSCIENCE  ENGLENGLISHLITERATURE  MATHMATHEMATICS  POLYPOLITICALSCIENCE  Unloader这样的工具  Oracle没有提供将数据导出到一个文件的工具。但是,我们可以用SQL*Plus的select及format数据来输出到一个文件:  setechooffnewpage0space0pagesize0feedoffheadofftrimspoolon  spooloradata.txt  selectcol1||','||col2||','||col3  fromtab1  wherecol2='XYZ';  spooloff  另外,也可以使用使用UTL_FILEPL/SQL包处理:  remRemembertoupdateinitSID.ora,utl_file_dir='c:\oradata'parameter  declare  fputl_file.file_type;  begin  fp:=utl_file.fopen('c:\oradata','tab1.txt','w');  utl_file.putf(fp,'%s,%s\n','TextField',55);  utl_file.fclose(fp);  end;  /  当然你也可以使用第三方工具,如SQLWays,TOADforQuest等。  加载可变长度或指定长度的记录  如:  LOADDATA  INFILE*  INTOTABLEload_delimited_data  FIELDSTERMINATEDBY","OPTIONALLYENCLOSEDBY'"'  TRAILINGNULLCOLS  (data1,  data2  )  BEGINDATA  11111,AAAAAAAAAA  22222,"A,B,C,D,"  下面是导入固定位置(固定长度)数据示例:  LOADDATA  INFILE*  INTOTABLEload_positional_data  (data1POSITION(1:5),  data2POSITION(6:15)  )  BEGINDATA  11111AAAAAAAAAA  22222BBBBBBBBBB  跳过数据行:  可以用"SKIPn"关键字来指定导入时可以跳过多少行数据。如:  LOADDATA  INFILE*  INTOTABLEload_positional_data  SKIP5  (data1POSITION(1:5),  data2POSITION(6:15)  )  BEGINDATA  11111AAAAAAAAAA  22222BBBBBBBBBB  导入数据时修改数据:  在导入数据到数据库时,可以修改数据。注意,这仅适合于常规导入,并不适合direct导入方式.如:  LOADDATA  INFILE*  INTOTABLEmodified_data  (rec_no"my_db_sequence.nextval",  regionCONSTANT'31',  time_loaded"to_char(SYSDATE,'HH24:MI')",  data1POSITION(1:5)":data1/100",  data2POSITION(6:15)"upper(:data2)",  data3POSITION(16:22)"to_date(:data3,'YYMMDD')"  )  BEGINDATA  11111AAAAAAAAAA991201  22222BBBBBBBBBB990112  LOADDATA  INFILE'mail_orders.txt'  BADFILE'bad_orders.txt'  APPEND  INTOTABLEmailing_list  FIELDSTERMINATEDBY","  (addr,  city,  state,  zipcode,  mailing_addr"decode(:mailing_addr,null,:addr,:mailing_addr)",  mailing_city"decode(:mailing_city,null,:city,:mailing_city)",  mailing_state  )  将数据导入多个表:  如:  LOADDATA  INFILE*  REPLACE  INTOTABLEemp  WHENempno!=''  (empnoPOSITION(1:4)INTEGEREXTERNAL,  enamePOSITION(6:15)CHAR,  deptnoPOSITION(17:18)CHAR,  mgrPOSITION(20:23)INTEGEREXTERNAL  )  INTOTABLEproj  WHENprojno!=''  (projnoPOSITION(25:27)INTEGEREXTERNAL,  empnoPOSITION(1:4)INTEGEREXTERNAL  )  导入选定的记录:  如下例:(01)代表第一个字符,(30:37)代表30到37之间的字符:  LOADDATA  INFILE'mydata.dat'BADFILE'mydata.bad'DISCARDFILE'mydata.dis'  APPEND  INTOTABLEmy_selective_table  WHEN(01)<>'H'and(01)<>'T'and(30:37)='19991217'  (  regionCONSTANT'31',  service_keyPOSITION(01:11)INTEGEREXTERNAL,  call_b_noPOSITION(12:29)CHAR  )  导入时跳过某些字段:  可用POSTION(x:y)来分隔数据.在Oracle8i中可以通过指定FILLER字段实现。FILLER字段用来跳过、忽略导入数据文件中的字段.如:  LOADDATA  TRUNCATEINTOTABLET1  FIELDSTERMINATEDBY','  (field1,  field2FILLER,  field3  )  导入多行记录:  可以使用下面两个选项之一来实现将多行数据导入为一个记录:  CONCATENATE:-usewhenSQL*Loadershouldcombinethesamenumberofphysicalrecordstogethertoformonelogicalrecord.  CONTINUEIF-useifaconditionindicatesthatmultiplerecordsshouldbetreatedasone.Eg.byhavinga'#'characterincolumn1.  SQL*Loader数据的提交:  一般情况下是在导入数据文件数据后提交的。  也可以通过指定ROWS=参数来指定每次提交记录数。  提高SQL*Loader的性能:  1)一个简单而容易忽略的问题是,没有对导入的表使用任何索引和/或约束(主键)。如果这样做,甚至在使用ROWS=参数时,会很明显降低数据库导入性能。  2)可以添加DIRECT=TRUE来提高导入数据的性能。当然,在很多情况下,不能使用此参数。  3)通过指定UNRECOVERABLE选项,可以关闭数据库的日志。这个选项只能和direct一起使用。  4)可以同时运行多个导入任务.  常规导入与direct导入方式的区别:  常规导入可以通过使用INSERT语句来导入数据。Direct导入可以跳过数据库的相关逻辑(DIRECT=TRUE),而直接将数据导入到数据文件中。文章引用自:HYPERLINK"http://blog.chinaunix.net/u/25176/showart_376070.html"\t"_blank"     发表于:2007-09-07,修改于:2007-09-0709:38 已浏览5030次,有评论3条HYPERLINK"http://blog.chinaunix.net/u2/star.php?blogid=25176&artid=376070"\o"推荐这篇文章"推荐HYPERLINK"http://blog.chinaunix.net/u2/complaint.php?blogid=25176&artid=376070"\o"投诉这篇文章"投诉 网友评论 HYPERLINK"http://blog.chinaunix.net/jump/byuser.php?username=wangx1948"\o"查看wangx1948的BLOG"\t"_blank"wangx1948时间:2008-03-1717:26:16IP地址:60.191.125.★有个问题要请教一下 HYPERLINK"http://blog.chinaunix.net/jump/byuser.php?username=wangx1948"\o"查看wangx1948的BLOG"\t"_blank"wangx1948时间:2008-03-1717:28:46IP地址:60.191.125.★LZ,我在用sqlldr把文件数据导进表的时候。文件格式如下1|a|xxx2|b|xxx如果我只想把第二个字段导进表该怎么写ctl?请赐教 本站网友时间:2008-11-0923:07:54IP地址:124.126.17.★导入时跳过某些字段:  可用 POSTION(x:y) 来分隔数据. 在Oracle8i中可以通过指定 FILLER 字段实现。FILLER 字段用来跳过、忽略导入数据文件中的字段.如:  LOAD DATA  TRUNCATE INTO TABLE T1  FIELDS TERMINATED BY ','  ( field1,  field2 FILLER,  field3  )
本文档为【oracle sql loader全攻略】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
中式烹调师
暂无简介~
格式:doc
大小:61KB
软件:Word
页数:19
分类:
上传时间:2022-09-18
浏览量:1