sqlload基本使用方法
SQLload
SQLloadsqlload是oracle提供的批量导⼊⽂件数据的⼯具1、在导⼊先,先根据数据建表。
2、执⾏sqlldr命令sqlldr userid=username/password control =*.tl --要在ctl⽂件的⽬录下执⾏3、编写ctl⽂件for example:load datainfile 'F:\STUDY\6.1\CELLPORT_20161124143843_exp_1.csv' --加载的⽂件infile 'F:\STUDY\6.1\CELLPORT_20161124143843_exp_2.csv' --加载的⽂件into table cellport --⽬标表when port_status='空闲' --可以设置条件筛选数据FIELDS TERMINATED BY ',' --设置分隔符,这⾥分隔符⽯,OPTIONALLY ENCLOSED BY '"' --设置结束符,也可以不设置,除⾮数据很⼯整,否则最好设置TRAILING NULLCOLS --设置空数据也,加载。
( --下⾯是表的字段,对每个字段还可以使⽤sql函数,进⾏⼀些计算或者格式转换等等,city,house_name "upper(:house_name)", --使⽤函数houes_type,house_jd,houese_wd,eq_name,eq_range,eq_location,eq_fgb,eq_port,port_status,port_type,OLT,OLT_PON ,NUMBER_209 , --DL_TIMESTAMP date 'yyyy-mm-dd hh24:mi:ss' --时间转换)1.什么是*.csv,如何得到?⾥⾯存放的是数据表.每⾏代表数据库表格的⼀⾏,每⾏中,每两个数据中间由逗号","分割.*.csv可以通过"将excel⽂件另存为*.csv"得到.2.如何将*.csv格式的数据导⼊oracle数据库?举例来说:test.csv⽂件中存放以下数据.a1,b1a2,b2存放路径为:d:\test.csv准备将其存放到oracle数据库中.a.⾸先,则需要新建表(栏位数量和类型要和需要导⼊的⼀致)create table test(A char,B char);b.新建test.ctl⽂件⽤记事本编辑写⼊:load datainfile ‘d:\test.csv’into table “test”fields terminated by ‘,’(A,B)c.打开cmd命令⾏界⾯输⼊:sqlldr control=d:\test.ctl log=d:\test.log回车:为账号和密码以及数据库名称.以上的介绍⽐较简单.⾥⾯的介绍⽐较详细,我转到这⾥:在 Oracle 数据库中,我们通常在不同数据库的表间记录进⾏复制或迁移时会⽤以下⼏种⽅法:1. A 表的记录导出为⼀条条分号隔开的 insert 语句,然后执⾏插⼊到 B 表中2. 建⽴数据库间的 dblink,然后⽤ create table B as select * from where ...,或 insert into B select * from where ...3. exp A 表,再 imp 到 B 表,exp 时可加查询条件4. 程序实现 select from A ..,然后 insert into B ...,也要分批提交5. 再就是本篇要说到的 Sql Loader(sqlldr) 来导⼊数据,效果⽐起逐条 insert 来很明显第 1 种⽅法在记录多时是个噩梦,需三五百条的分批提交,否则客户端会死掉,⽽且导⼊过程很慢。
使用SQLLoad导入excel
使用SQLLoad导入excel使用SQL*load将excel文件导入oracle数据库使用这种方法导入excel内容到oracle时,首先需要将excel文件另存为文本格式,文件类型选文本类型或者csv类型即将e:\test.xls 另存为e:\test.csv。
如果oracle没有对应存储数据的表结构,则需要创建表test(id,name,telphone)。
用记事本创建sql*loader控制文件test.ctl(ctl后缀是企图证明这是一个控制文件,但实际上这个文件后缀不重要,用户可以自由选择,但文件格式一定要是文本格式),内容如下:Load dataInfile ‘e:\test.csv’--数据源文件名称Append|insert|replace --append在表后追加,insert插入空表,replace替代原有内容Into table test --要导入的数据库表名称[when id = id_memo] --过滤条件Fields terminated by X’09’ --字段分隔符(id,name,telphone) --字段名称列表最后在命令窗口输入sqlldr命令行执行导入操作Sqlldr userid = system/managercontrol=’e:\test.ctl’Sqlldr的函数关键字说明:Userid --oracle用户名 userid = username/passwordControl --控制文件名称control = ‘e:\insert.ctl’Log –-日志文件名称log = ‘e:\insert.log’Bad --损坏文件名称Data --data file nameDiscard --discard file nameDiscardmax --number of discards to allow(默认全部)Skip --导入时跳过的记录行数(默认0)Load --导入时导入的记录行数(默认全部)Errors --允许错误的记录行数(默认50)。
Oracle数据库SqlLoad常用技巧总结
Oracle数据库SqlLoad常用技巧总结Oracle数据库SqlLoad常用技巧的相关知识是本文我们主要要介绍的内容,本文我们总结了14种SqlLoad的使用技巧,并给出了测试用的文件源码,接下来我们就开始一一介绍这部分内容,希望能够对您有所帮助。
1、控制文件中注释用“--”。
2、为防止导入出现中文乱码,在控制文件中加入字符集控制1.LOAD DATA2.CHARACTERSET ZHS16GBK3、让某一列成为行号,用RECNUM关键字1.load data2.infile *3.into table t4.replace5.( seqno RECNUM //载入每行的行号6.text Position(1:1024))7.BEGINDATA8.fsdfasj4、过滤某一列,用FILLER关键字1.LOAD DATA2.TRUNCATE INTO TABLE T13.FIELDS TERMINATED BY ','4.( field1,5.field2 FILLER,6.field37.)5、过滤行在INTO TABLE table_name后加WHEN过滤条件,但功能有限,如果以竖线分隔符的文件,不能实现字段级的过滤,定长的还好。
1.LOAD DATA2.INFILE 'mydata.dat'3.BADFILE 'mydata.bad'4.DISCARDFILE 'mydata.dis'5.APPEND6.INTO TABLE my_selective_table7.WHEN (01) <> 'H' and (01) <> 'T' and (30:37) = '200312 17'8.(9.region CONSTANT '31',10.service_key POSITION(01:11) INTEGER EXTE RNAL,11.call_b_no POSITION(12:29) CHAR12.)6、过滤首行,用OPTIONS (SKIP 1)选项,也可以写在命令行中,如:sqlldr sms/admin control=test.ctl skip=17、TRAILING NULLCOLS的使用,作用是表的字段没有对应的值时允许为空如:1.LOAD DATA2.INFILE *3.INTO TABLE DEPT4.REPLACE5.FIELDS TERMINATED BY ','6.TRAILING NULLCOLS // 其实下面的ENTIRE_LINE在BEGINDATA后面的数据中是没有直接对应的列的值的如果第一行改为 10,Sales,Virginia,1/5/2000,, 就不用TRAILING NULLCOLS了7.(DEPTNO,8.DNAME "upper(:dname)", // 使用函数9.LOC "upper(:loc)",ST_UPDATED date 'dd/mm/yyyy', // 日期的一种表达方式还有'dd-mon-yyyy' 等11.ENTIRE_LINE ":deptno||:dname||:loc||:last_updated "12.)13.BEGINDATA14.10,Sales,Virginia,1/5/200015.20,Accounting,Virginia,21/6/199916.30,Consulting,Virginia,5/1/200017.40,Finance,Virginia,15/3/20018、添加、修改数据(1)、1.LOAD DATA2.INFILE *3.INTO TABLE tmp_test4.( rec_no "my_db_sequence.nextval",5.region CONSTANT '31',6.time_loaded "to_char(SYSDATE, 'HH24:MI')",7.data1 POSITION(1:5) ":data1/100",8.data2 POSITION(6:15) "upper(:data2)",9.data3 POSITION(16:22)"to_date(:data3, 'YYMMDD')"10.)11.BEGINDATA12.11111AAAAAAAAAA99120113.22222BBBBBBBBBB990112(2)、1.LOAD DATA2.INFILE 'mail_orders.txt'3.BADFILE 'bad_orders.txt'4.APPEND5.INTO TABLE mailing_list6.FIELDS TERMINATED BY ","7.( addr,8.city,9.state,10.zipcode,11.mailing_addr "decode(:mailing_addr, null, :addr, : mailing_addr)",12.mailing_city "decode(:mailing_city, null, :city, :mai ling_city)",13.mailing_state14.)9、合并多行记录为一行记录通过关键字concatenate 把几行的记录看成一行记录:1.LOAD DATA2.INFILE *3.concatenate 3 // 通过关键字concatenate 把几行的记录看成一行记录4.INTO TABLE DEPT5.replace6.FIELDS TERMINATED BY ','7.(DEPTNO,8.DNAME "upper(:dname)",9.LOC "upper(:loc)",ST_UPDATED date 'dd/mm/yyyy'11.)12.BEGINDATA13.10,Sales, // 其实这3行看成一行 10,Sales,Virginia,1/5/200014.Virginia,15.1/5/200010、用”|+|”分隔符,避免数据混淆:fields terminated by "|+|"11、如果数据文件包含在控制文件中,用INFILE *如下:1.LOAD DATA2.INFILE *3.append4.INTO TABLE tmp_test5.FIELDS TERMINATED BY ","6.OPTIONALLY ENCLOSED BY '"'7.TRAILING NULLCOLS8.( data1,9.data210.)11.BEGINDATA12.11111,AAAAAAAAAA13.22222,"A,B,C,D,"12、一次导入多个文件到同一个表1.LOAD DATA2.INFILE file1.dat3.INFILE file2.dat4.INFILE file3.dat5.APPEND6.INTO TABLE emp7.( empno POSITION(1:4) INTEGER EXTERNAL,8.ename POSITION(6:15) CHAR,9.deptno POSITION(17:18) CHAR,10.mgr POSITION(20:23) INTEGER EXTERNAL11.)13、将一个文件导入到不同的表(1)、1.LOAD DATA2.INFILE *3.INTO TABLE tab1 WHEN tab = 'tab1'4.( tab FILLER CHAR(4),5.col1 INTEGER6.)7.INTO TABLE tab2 WHEN tab = 'tab2'8.( tab FILLER POSITION(1:4),9.col1 INTEGER10.)11.BEGINDATA12.tab1|113.tab1|214.tab2|215.tab3|316.==============(2)、1.LOAD DATA2.INFILE 'mydata.dat'3.REPLACE4.INTO TABLE emp5.WHEN empno != ' '6.( empno POSITION(1:4) INTEGER EXTERNAL,7.ename POSITION(6:15) CHAR,8.deptno POSITION(17:18) CHAR,9.mgr POSITION(20:23) INTEGER EXTERNAL10.)11.INTO TABLE proj12.WHEN projno != ' '13.( projno POSITION(25:27) INTEGER EXTERNAL,14.empno POSITION(1:4) INTEGER EXTERNAL15.)14、过滤掉的数据文件路径指定1./opt/app/oracle/product/10.2.0/bin/sqlldr APS/APS cont rol=/home/oracle/APS_LOAD/ctl/AP_CONTRACT.CTL LOG=/ho me/oracle/APS_LOAD/log/$yesterday/AP_CONTRACT_$yesterda y.log bad=/home/oracle/APS_LOAD/bad/DUE_BILL_$yesterday.b ad rows=10000readsize=20000000bindsize=20000000DISCA RD=/home/oracle/APS_LOAD/bad/discard_ts.dis15、附:测试用控制文件1.LOAD DATA2.INFILE '/home/oracle/APS_LOAD/dat/APS_AP_CONTRAC T.dat'3.TRUNCATE4.INTO TABLE AP_CONTRACT5.WHEN (01)<>'1'6.FIELDS TERMINATED BY "|"7.TRAILING NULLCOLS8.(9.AGMT_NO "(TRIM(:AGMT_NO ))",10.CONTRACT_NO FILLER, -- "(TRIM(:CONTRACT_NO ))",11.LOAN_AMT "(TRIM(:LOAN_AMT ))",12.AGMT_HOLDER "(TRIM(:AGMT_HOLDER ))",13.LOAN_TYPE_CD "(TRIM(:LOAN_TYPE_CD ))",14.CURR_CD "(TRIM(:CURR_CD ))" ,15.BALANCE "(TRIM(:BALANCE ))" ,16.LOAN_DIRC_CD "(TRIM(:LOAN_DIRC_CD ))",17.AGMT_START_DATE "(TRIM(:AGMT_START_D ATE ))",18.AGMT_END_DATE "(TRIM(:AGMT_END_DATE ))",19.AGMT_BELONG_ORG_NO "(TRIM(:AGMT_BEL ONG_ORG_NO ))",20.MANAGER_NO "(TRIM(:MANAGER_NO ))",21.PROCESS_RATE "(TRIM(:PROCESS_RATE ))",22.INSURE_METH_TYPE_CD "(TRIM(:INSURE_MET H_TYPE_CD ))",23.AGMT_SIGN_DATE "(TRIM(:AGMT_SIGN_DA TE ))",24.LOAN_PROP_CD "(TRIM(:LOAN_PROP_CD ))",25.LOAN_USE_TYPE "(TRIM(:LOAN_USE_TYPE ))",26.ENTRUST_LOAN_FLAG "(TRIM(:ENTRUST_LOA N_FLAG ))",27.ENTRUST_NAME "(TRIM(:ENTRUST_NAME ))",28.FARM_LOAN_FLAG "(TRIM(:FARM_LOAN_FL AG ))",29.FARM_LOAN_TYPE_CD "(TRIM(:FARM_LOAN_ TYPE_CD ))",30.LOAN_BIZ_TYPE_CD "(TRIM(:LOAN_BIZ_TYPE _CD ))",31.ID_TEST RECNUM ,32.CHAR_TEST CONSTANT '31',33.SQ "sqlldr.nextval",34.TEST_4 "TO_CHAR(SYSDATE,'YYYYMM DD HH24:MI:SS')",35.TEST_5 "(TRIM(:LOAN_BIZ_TYPE_CD)||' ---'||TRIM(:AGMT_NO))"36.)关于Oracle数据库SqlLoad常用技巧的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!。
oracle sqlload用法
oracle sqlload用法SQL*Loader 是 Oracle 数据库中一个用于高效地将大量数据加载到表中的工具。
它可以从文本文件、CSV 文件或其他数据库中加载数据,并将其插入到指定的表中。
以下是SQL*Loader 的用法:1. 创建控制文件:SQL*Loader 需要一个控制文件来指定数据的格式和加载方式。
控制文件可以手动创建,也可以使用Oracle Enterprise Manager 或 SQL Developer 等工具生成。
控制文件包含以下内容:- LOAD DATA:指定数据加载的语句。
- INFILE:指定要加载的数据文件的路径和名称。
- INTO TABLE:指定要加载数据的目标表的名称。
- FIELDS TERMINATED BY:指定字段之间的分隔符。
- TRAILING NULLCOLS:指定允许空列。
- 载入的列名和列数据类型。
2. 准备数据文件:需要准备一个包含要加载的数据的文本文件。
数据文件中的每一行对应表中一条记录,字段之间使用控制文件中指定的分隔符进行分隔。
3. 运行 SQL*Loader:打开命令行终端或 SQL*Plus 窗口,使用以下命令来运行 SQL*Loader:```sqlldr username/password@database control=controlfile.ctllog=logfilename.log```- `username/password`:Oracle 数据库的用户名和密码。
- `database`:要连接的数据库实例的名称。
- `control=controlfile.ctl`:指定控制文件的路径和名称。
- `log=logfilename.log`:指定日志文件的路径和名称。
4. 检查日志文件:SQL*Loader 在加载数据时会生成一个日志文件,用于记录加载过程中的错误和警告信息。
通过查看日志文件,可以了解加载过程中是否发生了错误,并可以根据其提供的信息进行调试和修复。
ORACLE中如何使用SQLLOAD批量添加数据
ORACLE中如何使用SQLLOAD批量添加数据在Oracle中,可以使用SQLLDR(SQL*Loader)工具来批量添加数据。
SQL*Loader是一个客户端工具,用于从文本文件中加载数据到Oracle表中。
以下是使用SQL*Loader批量添加数据的步骤:1. 创建一个控制文件(Control File):控制文件是一个文本文件,用于指导SQL*Loader加载数据。
它包含了数据文件的格式和数据应该如何被加载到Oracle表中的规则。
控制文件描述了目标表的结构、数据文件的格式和字段之间的映射关系。
一个控制文件可以对应多个数据文件。
2. 创建一个数据文件(Data File):数据文件是包含待加载数据的文本文件。
它可以是一个纯文本文件,也可以是包含字段分隔符的CSV或其他格式的文件。
数据文件的格式应该与控制文件中描述的格式匹配。
3.编写控制文件:控制文件是一个使用特定语法规则编写的文本文件。
它包含了以下几个部分:- LOAD DATA:指示SQL*Loader加载数据的开始。
-INFILE:指定数据文件的路径和名称。
-INTOTABLE:指定目标表的名称。
-FIELDSTERMINATEDBY:指定字段之间的分隔符。
-(列名1,列名2,...):指定数据文件中各个字段的映射关系。
字段的顺序和个数应该与目标表的列顺序和个数一致。
4. 运行SQL*Loader:打开终端(命令提示符或终端窗口),使用以下命令运行SQL*Loader:``````其中,`username`是Oracle用户名,`password`是密码,`database`是数据库名称,`controlfile.ctl`是控制文件的路径和名称。
5. 检查加载结果:运行完成后,SQL*Loader将输出加载的数据行数和错误行数。
如果有错误行,可以查看生成的日志文件以获得更多详细信息。
注意事项:- 在使用SQL*Loader加载数据之前,应该先创建目标表,确保表的结构与控制文件中描述的一致。
sqlloader的用法
sqlloader的用法sqlldr userid=system/password control=h:control.txtuserid是用户名和密码,control是控制文件位置。
下面是控制文件中的内容:load datainfile 'h:bbb.txt'--文本文件的位置append into table table_name ---#1FIELDS TERMINA TED BY ',' ----字段和字段之间的分隔符,如果使用X'09'代表是tab,是否是tab没有测试。
TRAILING NULLCOLS ------表的字段没有对应的值时允许为空(field1,field2,field3)---具体入库的表字段#1。
这里可以使用append、insert、replace和truncate,每个参数具体意义如下:APPEND 原先的表有数据就加在后面INSERT 装载空表如果原先的表有数据sqlloader会停止默认值REPLACE 原先的表有数据原先的数据会全部删除TRUNCA TE 指定的内容和replace的相同会用truncate语句删除现存数据用sqlloader也可以一次导入多个表中只要多加几个into就可以了,具体用法和insert的插入多个表用法类似。
入库的时候格式化也是可以的,可以参照外部表那篇文章。
用法二:数据文件:test1.txtSYSTEM , 40960SYSTEM , 40960SYSTEM , 323649536SYSTEM , 81920SYSTEM , 74350592SYSTEM , 65536SYSTEM , 81920SYSTEM , 40960SYSTEM , 40960SYSTEM , 19963904SYSTEM , 90112SYSTEM , 229376ZFAD , 11526144控制文件:input.ctlload datainfile 'test1.txt'append into table sum_dba_free_spacefields terminated by ','(tablespace_name,bytes)db建表:create table sum_dba_free_space(tablespace_name varchar2(30),bytes number) c:\>sqlldr scott/tiger control=input.ctl加载失败的log(同时会产生test.bad文件):c:\input.logSQL*Loader: Release 10.2.0.4.0 - Production on 星期五10月10 01:53:43 2008 Copyright (c) 1982, 2007, Oracle. All rights reserved.控制文件: input.ctl数据文件: test1.txt错误文件: test1.bad废弃文件: 未作指定(可废弃所有记录)要加载的数: ALL要跳过的数: 0允许的错误: 50绑定数组: 64 行, 最大256000 字节继续: 未作指定所用路径: 常规表SUM_DBA_FREE_SPACE,已加载从每个逻辑记录插入选项对此表APPEND 生效列名位置长度中止包装数据类型------------------------------ ---------- ----- ---- ---- ---------------------TABLESPACE_NAME FIRST * , CHARACTER BYTES NEXT * , CHARACTER表SUM_DBA_FREE_SPACE:6984 行加载成功。
SqlLoad的简单使用
SqlLoad的简单使⽤
sqlload的简单使⽤:
能实现: 快速导⼊⼤量数据
1.先安装oracle 客户端机器.有点⼤,600M+,
2.安装时选择管理员安装(1.1g)
3.第三步的时候我的出错了.说是环境变量校验不通过,检查环境变量的长度以及是否拥有管理员权限之后都没解决.考虑到这⾥只是⽤来导⼊数据,我选择了全部错误忽略, 最后它还是⾃动把环境变量加上了...具体原因不详
4.确保sqlldr在cmd中能使⽤了就好.
5.开始准备导⼊数据:
1.新建txt⽂件,然后把txt改为.ctl
2.打开ctl⽂件,复制以下代码:我的ctl⽂件名为:sqlload.ctl
LOAD DATA
infile 'e:\aa.csv' ## 源⽂件路径,路径不要包括中⽂
into table xx_temp ## 要导⼊的表
(
id terminated by whitespace ## id 为列名,whitespace 表⽰列之间使⽤空格来区分,如果是其他的 ‘|’ ⽅式则使⽤ terminated by '|'逗号则⽤逗号.以此类推
)
3.保存好之后,打开控制台.在控制台输⼊:
sqlldr username/password@ip或域名:端⼝/sid control=sqlload.ctl log=sqlload.out
然后回车就可以了...⽇志⽂件就在 log=sqlload.out 这⾥,,如果不指定,就默认和ctl同⼀个⽬录...⽇志主要⽤来看异常信息和导⼊的信息.
原创⽂章,转载注明出处.。
sqlloader使用方法
sqlloader使用方法SQL*Loader是Oracle数据库提供的一种用于导入数据的工具,它可以通过读取数据文件,并将数据加载到Oracle表中。
本文将详细介绍SQL*Loader的使用方法。
一、准备工作在使用SQL*Loader之前,需要进行一些准备工作。
首先,需要创建一个数据文件,该文件包含要导入的数据。
其次,需要创建一个控制文件,该文件描述了数据文件的结构以及如何将数据加载到表中。
最后,需要确保已经创建了目标表,以便将数据加载到表中。
二、创建数据文件数据文件是包含要导入的数据的文本文件。
可以使用任何文本编辑器创建数据文件,确保数据文件的格式与要导入的表的字段格式相匹配。
每条记录应该占据一行,并且字段之间使用分隔符进行分隔。
三、创建控制文件控制文件是描述如何加载数据的文件。
它指定了数据文件的位置、格式以及要加载数据的表的结构。
控制文件是一个文本文件,可以使用任何文本编辑器进行创建。
以下是一个控制文件的示例:LOAD DATAINFILE 'data.txt'INTO TABLE employeesFIELDS TERMINATED BY ','(emp_id, emp_name, emp_salary)上述示例中,LOAD DATA表示开始数据加载。
INFILE指定了数据文件的路径和名称。
INTO TABLE指定了要将数据加载到的表的名称。
FIELDS TERMINATED BY指定了字段之间的分隔符。
括号中的内容是表中的字段列表,用于指定数据文件中各个字段的顺序。
四、执行SQL*Loader执行SQL*Loader需要使用命令行界面。
打开命令行界面,并进入SQL*Loader的安装目录。
然后使用以下命令执行SQL*Loader:sqlldr username/password@database control=controlfile.ctl上述命令中,username是Oracle数据库的用户名,password是密码,database是数据库的连接字符串,controlfile.ctl是控制文件的路径和名称。
OracleSQLLoader使用说明
OracleSQLLoader使用说明SQL Loader的基本用法如下:2.创建数据文件:数据文件是一个文本文件,它包含要加载到数据库表中的实际数据。
数据文件的格式必须与控制文件中指定的格式一致。
3. 运行SQL Loader:在命令行中执行SQL Loader命令,指定控制文件和数据文件的路径。
可以使用不同的参数和选项来调整SQL Loader 的行为。
例如,可以指定要加载的表、要跳过的行数、要使用的数据库连接等。
4. 查看日志文件:SQL Loader会生成一个日志文件,记录加载过程中的详细信息,包括加载的行数、错误信息等。
可以查看日志文件来检查加载的结果,并根据需要做出相应的处理。
SQL Loader还提供了许多高级功能和选项,以满足各种加载需求:1. 跳过和处理错误:SQL Loader可以跳过数据文件中的错误行,并继续加载后续行。
可以使用参数控制跳过错误的行数和处理错误的方式。
2. 转换和映射数据:SQL Loader可以根据需要对数据进行转换和映射。
例如,可以将数据从一个字符集转换为另一个字符集,或者将数据映射到目标表的不同列中。
3. 并行加载:SQL Loader支持并行加载,可以同时加载多个数据文件,以提高加载速度。
可以指定并行加载的线程数和每个线程加载的数据文件。
4. 加载大对象:SQL Loader可以加载包含大对象(例如BLOB和CLOB)的数据文件。
可以使用参数控制如何处理大对象的加载。
5. 控制文件生成器:Oracle提供了一个控制文件生成器,可以根据源表的结构自动生成控制文件。
这对于大型数据库或者不熟悉控制文件语法的用户来说非常有用。
总结:Oracle SQL Loader是一个功能强大的工具,可以高效地将大量数据加载到Oracle数据库中。
它提供了丰富的参数和选项,可以满足各种加载需求。
通过控制文件和数据文件,可以灵活地定义加载的格式和目标表的结构。
无论是加载小型表还是大型表,SQL Loader都能提供快速和可靠的加载功能。
sqlldr的简单使用方法
sqlldr的介绍SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件(数据)迁移到ORACLE数据库中。
SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。
sqlldr的执行(在UNIX下用shell来调用)$ORACLE_HOME/bin/sqlldr dwh/cognos@ORA8 control=../tmp/load.ctl$ORACLE_HOME/bin/sqlldr dwh/cognos@ORA8 control=../tmp/load.ctl direct=true log=...制定控制文件load.ctl1、控制文件标识2、要输入的数据文件名为test.txt3、向表test中(追加)记录4、指定分隔符load datainfile '/query5/Ascential/data/month/mgmid.200304M'into table DC_RPT_T_MGMID_200304M_30 append(APPEND为追加方式,或REPLACE)fields terminated by ','(userid,svcnum,brand,svcPlan,busist,hvcFlag,mntFlag,userYear,joinMonth,callfee,callfeefav,tollfee,tollfeefav,calltimes,callduration,billduration,tollduration,totalFee,groupID)导入方式************* 以下是4种装入表的方式APPEND // 原先的表有数据就加在后面INSERT // 装载空表如果原先的表有数据sqlloader会停止默认值REPLACE // 原先的表有数据原先的数据会全部删除TRUNCATE // 指定的内容和replace的相同会用truncate语句删除现存数据导入日期型字段LOAD DATAINFILE 'zlx.TXT'append INTO TABLE zlxFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'(ID,L,F,M,DATE1 date 'dd-mm-yyyy')SQLLoader将Excel 数据导出到Oracle1.创建SQL*Loader输入数据所需要的文件,均保存到C:,用记事本编辑控制文件:input.ctl,内容如下:load data--1、控制文件标识infile 'test.txt'--2、要输入的数据文件名为test.txtappend into table test--3、向表test中追加记录fields terminated by X'09'--4、字段终止于X'09',是一个制表符(TAB)(id,username,password,sj)-----定义列对应顺序2.还有一种方法可以把EXCEL文件另存为CSV(逗号分隔)(*.csv),控制文件就改为用逗号分隔LOAD DATAINFILE 'd:car.csv'APPEND INTO TABLE t_car_tempFIELDS TERMINATED BY …,‟(phoneno,vip_car)在控制文件中直接导入数据1、控制文件test.ctl的内容LOAD DATAINFILE *BADFILE 'C:Documents and SettingsJackey桌面WMCOUNTRY.BAD'INSERT INTO TABLE EMCCOUNTRYFields terminated by …;‟ Optionally enclosed by '"'(COUNTRYID,COUNTRYCODE,COUNTRYNAME,CONTINENTID ,MAPID ,CREATETIME DATE …MM/DD/YYYY HH24:MI:SS‟LASTMODIFIEDTIME DAT E …MM/DD/YYYY HH24:MI:SS‟)BEGINDATA1;"JP";"Japan";1;9;"09/16/2004 16:31:32"; 2;"CN";"China";1;10;"09/16/2004 16:31:32"; 3;"IN";"India";1;11;"09/16/2004 16:31:32"; 4;"AU";"Australia";6;12;"09/16/2004 16:31:32"; 5;"CA";"Canada";4;13;"09/16/2004 16:31:32"; 6;"US";"United States";4;14;"09/16/2004 16:31:32"; 7;"MX";"Mexico";4;15;"09/16/2004 16:31:32"; 8;"GB";"United Kingdom";3;16;"09/16/2004 16:31:32"; 9;"DE";"Germany";3;17;"09/16/2004 16:31:32"; 10;"FR";"France";3;18;"09/16/2004 16:31:32"; 11;"IT";"Italy";3;19;"09/16/2004 16:31:32"; 12;"ES";"Spain";3;20;"09/16/2004 16:31:32"; 13;"FI";"Finland";3;21;"09/16/2004 16:31:32"; 14;"SE";"Sweden";3;22;"09/16/2004 16:31:32"; 15;"IE";"Ireland";3;23;"09/16/2004 16:31:32"; 16;"NL";"Netherlands";3;24;"09/16/2004 16:31:32"; 17;"DK";"Denmark";3;25;"09/16/2004 16:31:32"; 18;"BR";"Brazil";5;85;"09/30/2004 11:25:43"; 19;"KR";"Korea, Republic of";1;88;"09/30/2004 11:25:43"; 20;"NZ";"New Zealand";6;89;"09/30/2004 11:25:43"; 21;"BE";"Belgium";3;79;"09/30/2004 11:25:43"; 22;"AT";"Austria";3;78;"09/30/2004 11:25:43"; 23;"NO";"Norway";3;82;"09/30/2004 11:25:43"; 24;"LU";"Luxembourg";3;81;"09/30/2004 11:25:43"; 25;"PT";"Portugal";3;83;"09/30/2004 11:25:43";26;"GR";"Greece";3;80;"09/30/2004 11:25:43"; 27;"IL";"Israel";1;86;"09/30/2004 11:25:43"; 28;"CH";"Switzerland";3;84;"09/30/2004 11:25:43";29;"A1";"Anonymous Proxy";0;0;"09/30/2004 11:25:43"; 30;"A2";"Satellite Provider";0;0;"09/30/2004 11:25:43"; 31;"AD";"Andorra";3;0;"09/30/2004 11:25:43"; 32;"AE";"United Arab Emirates";1;0;"09/30/2004 11:25:43"; 33;"AF";"Afghanistan";1;0;"09/30/2004 11:25:43"; 34;"AG";"Antigua and Barbuda";7;0;"09/30/2004 11:25:43"; 35;"AI";"Anguilla";7;0;"09/30/2004 11:25:43"; 36;"AL";"Albania";3;0;"09/30/2004 11:25:43"; 37;"AM";"Armenia";3;0;"09/30/2004 11:25:43"; 38;"AN";"Netherlands Antilles";3;0;"09/30/2004 11:25:43"; 39;"AO";"Angola";2;0;"09/30/2004 11:25:43"; 40;"AP";"Asia/Pacific Region";2;0;"09/30/2004 11:25:43"; 41;"AQ";"Antarctica";8;0;"09/30/2004 11:25:43"; 42;"AR";"Argentina";5;0;"09/30/2004 11:25:43"; 43;"AS";"American Samoa";6;0;"09/30/2004 11:25:43"; 44;"AW";"Aruba";5;0;"09/30/2004 11:25:43"; 45;"AZ";"Azerbaijan";1;0;"09/30/2004 11:25:43"; 46;"BA";"Bosnia and Herzegovina";3;0;"09/30/2004 11:25:43"; 47;"BB";"Barbados";5;0;"09/30/2004 11:25:43"; 48;"BD";"Bangladesh";1;0;"09/30/2004 11:25:43"; 49;"BF";"Burkina Faso";2;0;"09/30/2004 11:25:43"; 50;"BG";"Bulgaria";3;0;"09/30/2004 11:25:43"; 51;"BH";"Bahrain";1;0;"09/30/2004 11:25:43"; 52;"BI";"Burundi";2;0;"09/30/2004 11:25:43"; 53;"BJ";"Benin";2;0;"09/30/2004 11:25:43"; 54;"BM";"Bermuda";4;0;"09/30/2004 11:25:43"; 55;"BN";"Brunei Darussalam";1;0;"09/30/2004 11:25:43";56;"BO";"Bolivia";5;0;"09/30/2004 11:25:43";57;"BS";"Bahamas";7;0;"09/30/2004 11:25:43";58;"BT";"Bhutan";1;0;"09/30/2004 11:25:43";59;"BV";"Bouvet Island";5;0;"09/30/2004 11:25:43";60;"BW";"Botswana";2;0;"09/30/2004 11:25:43";61;"BY";"Belarus";3;0;"09/30/2004 11:25:43";2、执行导入命令C:>sqlldr userid=system/manager control=test.ctl有效的关键字:userid -- ORACLE username/passwordcontrol -- Control file namelog -- Log file namebad -- Bad file namedata -- Data file namediscard -- Discard file namediscardmax -- Number of discards to allow (全部默认)skip -- Number of logical records to skip (默认0)load -- Number of logical records to load (全部默认)errors -- Number of errors to allow (默认50)rows -- Number of rows in conventional path bind array or between direct path data saves(默认: 常规路径64, 所有直接路径)bindsize -- Size of conventional path bind array in bytes(默认256000)silent -- Suppress messages during run(header,feedback,errors,discards,partitions)direct -- use direct path (默认FALSE)parfile -- parameter file: name of file that contains parameter specifications parallel -- do parallel load (默认FALSE)file -- File to allocate extents fromskip_unusable_indexes -- disallow/allow unusable indexes or indexpartitions(默认FALSE)skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable(默认FALSE)readsize -- Size of Read buffer (默认1048576)external_table -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE(默认NOT_USED)columnarrayrows -- Number of rows for direct path column array(默认5000) streamsize -- Size of direct path stream buffer in bytes(默认256000)multithreading -- use multithreading in direct pathresumable -- enable or disable resumable for current session(默认FALSE)resumable_name -- text string to help identify resumable statementresumable_timeout -- wait time (in seconds) for RESUMABLE(默认7200)date_cache -- size (in entries) of date conversion cache(默认1000)PLEASE NOTE: 命令行参数可以由位置或关键字指定。
ORACLE中如何使用SQLLOAD批量添加数据
ORACLE中如何使用SQLLOAD批量添加数据在Oracle数据库中,可以使用SQL*Loader实用程序来批量添加大量数据。
SQL*Loader允许通过一次性加载数据文件来快速高效地添加数据。
以下是使用SQL*Loader批量添加数据的步骤:1.准备数据文件:创建一个纯文本文件,其中包含要加载到数据库中的数据。
每一行数据应该对应于数据库表中的一条记录,字段之间使用特定的分隔符分隔。
2.创建控制文件:控制文件描述了如何加载数据文件中的数据到数据库表中。
控制文件是一个文本文件,其结构由CONTROLFILE语句定义。
在控制文件中,需要指定数据文件的位置、数据文件的格式和字段之间的分隔符等信息。
3. 运行SQL*Loader:使用SQL*Loader工具来加载数据文件中的数据。
``````其中,`<username>`是要登录的数据库用户名,`<password>`是相应的密码,`<database>`是要连接的数据库的SID或服务名,`<controlfile>`是控制文件的路径和名称,`<logfile>`是日志文件的路径和名称。
4. 检查日志文件:SQL*Loader会生成一个日志文件,其中包含加载过程的详细信息和任何错误消息。
通过分析日志文件,可以查看加载的数据数量、成功加载的数据和失败加载的数据等信息。
使用SQL*Loader批量添加大量数据具有以下优点:- 高效:SQL*Loader可以根据配置的并行度,同时加载多个数据文件,以快速将大量数据添加到数据库中。
- 省时:相较于使用INSERT语句逐条插入数据,SQL*Loader可以大大减少添加大量数据的时间。
-易于使用:通过简单的配置,即可批量添加大量数据,无需手动编写INSERT语句或使用其他复杂的加载工具。
但是,使用SQL*Loader批量添加数据也需要注意以下事项:-数据准备:数据文件必须事先准备好,并且该文件必须符合数据库表的结构和约束,例如字段数量和类型等。
SQL Loader的详细语法及实例
INFILE * // 要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容
INTO TABLE table_name // 指定装入的表
BADFILE 'c:\bad.txt' // 指定坏文件地址
exception
when others then null;
end;
EXIT when l_return is not null;
end loop;
if ( l_return is null )
then
l_return :=
new_time( to_date('01011970','ddmmyyyy') + 1/24/60/60 *
(DEPTNO,
DNAME "upper(:dname)", // 使用函数
LOC "upper(:loc)",
LAST_UPDATED date 'dd/mm/yyyy', // 日期的一种表达方式 还有'dd-mon-yyyy' 等
ENTIRE_LINE ":deptno||:dname||:loc||:last_updated"
-- FIELDS TERMINATED BY x'09'
(DEPTNO,
DNAME,
LOC
)
BEGINDATA
10 Sales Virginia
3 ***** 指定不装载那一列
LOAD DATA
sqlloader使用指南
sqlloader使用指南Oracle SQL*Loader 使用指南整理:Angel.JohnSQL*Loader是Oracle数据库导入外部数据的一个工具.它和DB2的Load工具相似,但有更多的选择,它支持变化的加载模式,可选的加载及多表加载.如何使用 SQL*Loader 工具我们可以用Oracle的sqlldr工具来导入数据。
例如:sqlldr scott/tiger control=loader.ctl控制文件(loader.ctl) 将加载一个外部数据文件(含分隔符). loader.ctl如下:load datainfile 'c:\data\mydata.csv'into table empfields terminated by "," optionally enclosed by '"'( empno, empname, sal, deptno )mydata.csv 如下:10001,"Scott Tiger", 1000, 4010002,"Frank Naude", 500, 20下面是一个指定记录长度的示例控制文件。
"*" 代表数据文件与此文件同名,即在后面使用BEGINDATA段来标识数据。
load datainfile *replaceinto table departments( dept position (02:05) char(4),deptname position (08:27) char(20))begindataCOSC COMPUTER SCIENCEENGL ENGLISH LITERATUREMATH MATHEMATICSPOLY POLITICAL SCIENCEUnloader这样的工具Oracle 没有提供将数据导出到一个文件的工具。
oracle sqlloader用法
oracle sqlloader用法Oracle SQL*Loader是一个数据加载工具,用于将大量的数据从外部文件(如文本文件、CSV文件)加载到Oracle数据库中。
SQL*Loader的基本用法如下:1. 创建一个控制文件(control file),控制文件指定了数据文件的格式、目标表的结构以及加载时的行为规则。
控制文件通常是一个文本文件,可以使用任何文本编辑器创建和编辑。
2. 编写控制文件时需要指定以下信息:- LOAD DATA:表示接下来的数据将被加载。
- INFILE:指定数据文件的路径和文件名。
- INTO TABLE:指定目标表的名字。
- FIELDS TERMINATED BY:指定字段之间的分隔符。
- TRAILING NULLCOLS:表示允许目标表中的列接受空值。
- (列1, 列2, …):指定数据文件中每行数据对应的目标表的列。
3. 保存控制文件,并在命令行中使用sqlldr命令执行它。
例如: ```sqlldr userid=<用户名>/<密码> control=<控制文件路径和文件名> log=<日志文件路径和文件名>```其中,`<用户名>`和`<密码>`是登录Oracle数据库的用户名和密码,`<控制文件路径和文件名>`是控制文件的路径和文件名,`<日志文件路径和文件名>`是执行日志的路径和文件名。
4. 执行sqlldr命令后,SQL*Loader会根据控制文件加载数据,并生成一个执行日志。
5. 查看执行日志,判断数据加载是否成功。
需要注意的是,在使用SQL*Loader加载数据之前,需要先创建目标表,以确保加载的数据能够正确地插入到表中。
另外,控制文件中也可以指定其他高级的加载选项,例如数据转换、条件过滤等,以满足不同的数据加载需求。
详细的用法和选项可以参考Oracle官方文档。
SQLLoader的使用方法
SQL Loader的使用方法Oracle SQL Loader的详细语法SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。
SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。
现在,我们抛开其理论不谈,用实例来使您快速掌握SQL*LOADER 的使用方法。
首先,我们认识一下SQL*LOADER。
在NT下,SQL*LOADER的命令为SQLLDR,在UNIX下一般为sqlldr/sqlload。
如执行:d:\oracle>sqlldrSQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 11:06:42 2002(c) Copyright 1999 Oracle Corporation. All rights reserved.用法: SQLLOAD 关键字 = 值 [,keyword=value,...]有效的关键字:userid -- ORACLE username/passwordcontrol -- Control file namelog -- Log file namebad -- Bad file namedata -- Data file namediscard -- Discard file namediscardmax -- Number of discards to allow (全部默认)skip -- Number of logical records to skip (默认0)load -- Number of logical records to load (全部默认)errors -- Number of errors to allow (默认50)rows --Number of rows in conventional path bind array or between direct path data saves(默认: 常规路径 64, 所有直接路径)bindsize --Size of conventional path bind array in bytes(默认65536)silent --Suppress messages during run (header,feedback,errors,disca rds,partitions)direct -- use direct path (默认FALSE)parfile --parameter file: name of file that contains parameter specificationsparallel -- do parallel load (默认FALSE)file -- File to allocate extents fromskip_unusable_indexes --disallow/allow unusable indexes or index partitions(默认FALSE)skip_index_maintenance --do not maintain indexes, mark affected indexes as unusable(默认FALSE)commit_discontinued --commit loaded rows when load is discontinued(默认FALSE)readsize -- Size of Read buffer (默认1048576)PLEASE NOTE: 命令行参数可以由位置或关键字指定。
sqlloader参数
sqlloader参数SQLLoader参数是用于Oracle数据库中数据导入的工具。
它可以通过读取数据文件并将数据加载到数据库表中,提供了很多可配置的参数来控制导入过程。
本文将介绍一些常用的SQLLoader参数及其使用方法。
1. INFILE参数:指定数据文件的路径和名称。
可以使用绝对路径或相对路径。
例如,INFILE 'data.txt'表示数据文件为当前目录下的data.txt文件。
2. INTO TABLE参数:指定要将数据加载到的目标表的名称。
例如,INTO TABLE employees表示将数据加载到名为employees的表中。
3. FIELDS TERMINATED BY参数:指定字段之间的分隔符。
默认情况下,分隔符是逗号。
可以根据实际情况将其更改为其他字符。
例如,FIELDS TERMINATED BY '|'表示字段之间使用竖线字符作为分隔符。
4. TRAILING NULLCOLS参数:指定是否处理带有空值的列。
如果希望忽略空值并将其视为有效值,则可以使用TRAILING NULLCOLS。
例如,TRAILING NULLCOLS表示忽略末尾的空列。
5. BADFILE参数:指定坏数据文件的路径和名称。
当SQLLoader遇到无法加载的数据时,将其写入坏数据文件中。
例如,BADFILE 'baddata.txt'表示将无法加载的数据写入名为baddata.txt的文件中。
6. DISCARD参数:指定丢弃数据的路径和名称。
当SQLLoader遇到无效或不符合要求的数据时,将其写入丢弃文件中。
例如,DISCARD 'discard.txt'表示将无效数据写入名为discard.txt的文件中。
7. SKIP参数:指定要跳过的行数。
可以在数据文件中指定要跳过的起始行数。
例如,SKIP 1表示跳过第一行。
8. LOG参数:指定日志文件的路径和名称。
sql load语法
sql load语法
SQL中的LOAD语法通常用于将数据从外部文件加载到数据库表中。
其基本语法如下:
LOAD DATA [LOCAL] INFILE 'file_name'。
INTO TABLE table_name.
[CHARACTER SET charset_name]
[FIELDS.
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES.
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES]
[(column1, column2, ...)]
[SET column1 = expression1, column2 = expression2, ...]
其中,关键字LOAD DATA用于指定要加载数据的操作,INFILE 后面指定了外部文件的名称,INTO TABLE后面指定了要加载数据的目标表,接下来的部分用于指定文件和字段的分隔符、字符集、行的结束符等信息。
最后的可选部分用于指定数据加载到表中的列和对应的表达式。
需要注意的是,LOAD DATA语法的具体细节可能会根据不同的
数据库系统而有所不同,上述语法适用于大多数主流的关系型数据
库系统,如MySQL、MariaDB等。
在实际使用中,还需根据具体数据库系统的文档进行相应调整和参考。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
朋友打电话问我如何利用sql讲mysl导出的文本数据加载到oracle数据库,电话说了他也没听清楚,我做了如下实验,给他做例子:一、加载txt文本1.在D盘建立sqlldr的控制文件,111.ctl 内容如下LOAD DATAINFILE 'd:\111.txt'INTO TABLE SALGRADE_TESTTRUNCATEFIELDS TERMINATED BY ','(GRADE,LOSAL,HISAL)2.在D盘建立sqlldr的数据文件111.txt,内容如下格式1,700,12002,1201,14003,1401,20004,2001,30005,3001,99993.在CMD的命令行模式执行加载操作sqlldr scott/tiger control=d:\111.ctl log=d:\111.log bad=d:\111.baSQL*Loader: Release 11.2.0.1.0 - Production on 星期三 9月 14 10:58:35 2011 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved达到提交点 - 逻辑记录计数 4达到提交点 - 逻辑记录计数 54.登录数据库验证加载结果D:\window\server\mysql-5.1.51\bin>sqlplus scott/tiger连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from SALGRADE_TEST;GRADE LOSAL HISAL---------- ---------- ----------1 700 12002 1201 14003 1401 20004 2001 30005 3001 99995.导入成功之后,查看111.log6.注释LOAD DATA 控制文件标识INFILE 'd:\111.txt'为数据文件地址和名称,此处如果是INFILE *表示要加载的数据就在这个控制文件里,也就是BEGINDATA后面跟的内容。
详见7INTO TABLE SALGRADE_TEST要往SALGRADE_TEST表里加载数据TRUNCATE如果表里有数据,先truncate表,然后再加载,TRUNCATE还可换成其他值,比如insert,为缺省方式,在数据装载开始时要求表为空,如果表中有数据,会报错而终止。
SQL*Loader-601: 对于 INSERT 选项, 表必须为空。
表 SALGRADE_TEST 上出错append,在表中追加新记录,如果。
表上有主键和唯一性约束,新加载的数据的相关字段值不能重复replace,删除旧记录,替换成新装载的记录,要求有delete权限truncate,同上,要求有truncate权限FIELDS TERMINATED BY ',' 数据以逗号分隔,如果是TERMINATED BY WRITESPACE表示以空白分隔,如果不指定FIELDS TERMINATED BY ',',需要为每一列都指定分隔符,如下:(GRADE[interger external] TERMINATED BY ',',LOSAL [interger external] TERMINATED BY ',',HISAL [interger external] TERMINATED BY ',')例如:LOAD DATAINFILE 'd:\111.txt'TRUNCATEINTO TABLE SALGRADE_TEST(GRADE TERMINATED BY ',',LOSAL TERMINATED BY ',',HISAL TERMINATED BY ',')(GRADE,LOSAL,HISAL) 要加载到表中的这些字段,字段顺序需要和数据文件111.txt内的数据对应,如果单独为每一列都指定了分隔符,此部分就不需要了。
7.如果数据量不大,可以讲sqlload的数据文件(111.txt)集成到sqlload的控制文件(111.ctl)内,例如:LOAD DATAINFILE *TRUNCATEINTO TABLE SALGRADE_TESTFIELDS TERMINATED BY ','(GRADE,LOSAL,HISAL)BEGINDATA1,700,12002,1201,14003,1401,20004,2001,30005,3001,9999加载D:\>sqlldr scott/tiger control=d:\111.ctlSQL*Loader: Release 11.2.0.1.0 - Production on 星期三 9月 14 17:03:53 2011 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 达到提交点 - 逻辑记录计数 4达到提交点 - 逻辑记录计数 5登录数据库验证加载结果D:\>sqlplus scott/tiger连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> SELECT * FROM SALGRADE_TEST;GRADE LOSAL HISAL---------- ---------- ----------1 700 12002 1201 14003 1401 20004 2001 30005 3001 9999二、加载csv格式的数据1.建立测试表D:\>sqlplus scott/tiger连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> create table dept_test as select * from dept where 1=2;表已创建。
2.建立sqlload的数据文件111.csv,内容如下3.建立sqlload的控制文件111.ctl,内容如下LOAD DATAINFILE 'd:\111.csv'TRUNCATEINTO TABLE DEPT_TESTFIELDS TERMINATED BY ','(DEPTNO,DNAME,LOC)4.执行加载操作D:\>sqlldr scott/tiger control=d:\111.ctl log=d:\111.logSQL*Loader: Release 11.2.0.1.0 - Production on 星期四 9月 15 09:47:44 2011 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 达到提交点 - 逻辑记录计数 45.登录数据库查询D:\>sqlplus scott/tiger连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from dept_test;DEPTNO DNAME LOC---------- -------------- -------------10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON三、加载图片到数据库1.创建测试表,由于图片在数据库中以blob的形式保存,这里是有了11g的新特性,securefiles LOB的形式存储图片。
SQL> create table t_load_sf (id number, full_name varchar2(100),2 create_date date, contents blob, constraint pk_t_load_sf primary key(id))3 lob (contents) store as securefile;表已创建。
2.创建sqlload的数据文件111.txt,内容如下:1,DSC00086.JPG2,DSC00122.JPG3,DSC00145.JPG4,DSC00146.JPG5,psu.jpg3.创建sqlload的控制文件111.ctl,内容如下:LOAD DATAINFILE '111.txt'INTO TABLE T_LOAD_SFTRUNCATEFIELDS TERMINATED BY ','(ID CHAR(255),FULL_NAME CHAR(255),CREATE_DATE SYSDATE,CONTENTS LOBFILE(FULL_NAME) TERMINATED BY EOF)4.加载D:\test>sqlldr scott/tiger control=D:\111.ctl log=d:\111.logSQL*Loader: Release 11.2.0.1.0 - Production on 星期四 9月 15 11:29:13 2011 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 达到提交点 - 逻辑记录计数 55.登录数据库验证SQL> select * from t_load_sf where rownum=1;ID FULL_NAME CREATE_DATE CONTENTS-------- --------------- -------------- -----------------------------------1 DSC00086.JPG 15-9月 -11 FFD8FFE1538045786966000049492A00080000000B000E01020020000000920000000F01020005000000B20000001001020008000000B80000001201030001000000010000001A01050001000000C000如果使用plsqldev工具,可以看到加载进数据库的图片。