利用SQLLoader导EXCEL文件到Oracle数据库表中简单说明
将excel数据导入oracle中的几种方法
将excel数据导入oracle中的几种方法将Excel数据导入Oracle数据库有多种方法,下面介绍几种常用的方法,包括使用Oracle SQL Developer、使用PL/SQL、使用OracleData Integrator(ODI)和使用第三方工具。
1. 使用Oracle SQL Developer导入数据Oracle SQL Developer是Oracle官方提供的数据库开发和管理工具。
它提供了一种简单直观的方法将Excel数据导入到Oracle数据库中。
步骤如下:1) 打开Oracle SQL Developer并连接到目标数据库。
2)在导航栏中选择"表格"选项卡。
3)在"表格"选项卡中,右键单击要导入数据的表格,选择"导入数据"。
4) 在"导入数据"对话框中,选择"从文件"选项,并选择Excel文件。
5)配置导入选项,例如数据格式、目标表格和列映射等。
6)单击"导入"按钮,开始导入数据。
2.使用PL/SQL导入数据PL/SQL是Oracle的过程化编程语言,可以使用它编写脚本将Excel数据导入到Oracle数据库中。
步骤如下:1) 打开PL/SQL开发工具,例如Oracle SQL Developer或者Oracle PL/SQL Developer。
2)创建一个新的PL/SQL脚本。
3) 在脚本中使用INSERT语句将Excel中的数据逐行插入到目标表格中。
4)运行脚本以执行导入数据的操作。
3. 使用Oracle Data Integrator(ODI)导入数据Oracle Data Integrator(ODI)是一个数据集成工具,可用于将Excel数据导入到Oracle数据库中。
它提供了一种图形化的方法来定义和管理数据转换和导入操作。
步骤如下:1) 打开ODI Studio并连接到目标数据库。
sql数据导入oracle说明
1、数据源ODBC设置
管理工具-数据源(ODBC)
点添加,选择oracle
填写数据源、tns名称和用户名
2、导出导入
点击sqlserver下的导入和导出数据(32和64都可)
点击下一步:
选择数据源(sqlserver)、服务器和数据库,然后点下一步:
选择目标:
如果是oracle,再点击属性,填写数据源、用户名密码(勾选允许保存密码),点确定,然
后下一步(可进行测试连接测试oracle是否连通)
默认选择,然后下一步(如果有命令可选编写查询项):
勾选要导出到oracle的表,下一步即可:
注意:
1、选择表然后双击,勾选上“可以为空”属性,避免导入oracle时报错
2、如果提示字段“char”超长,可以在创建目标表时将字段类型更改成“V ARCHAR2”类
型。
进入导入模式,等待结果,如果有一张表出错,则所有导入均会失败:。
Oracle使用SqlLoad导入Excel大数据操作方法
Oracle使用SqlLoad导入Excel大数据操作方法第一步:按excel格式整理需要导入的源数据第二步:将excel表格另存为csv(逗号分割)格式。
第三步:用文本方式打开impfile.ctrl文件,修改里面的infile行为文件实际存放路径和名称,比如:infile 'c:\cust.csv'第四步:用文本方式打开impfile.ctrl文件,修改append into table 行后面加上要导入的表明,例如:append into table if_imp_card第五步:用文本方式打开impfile.ctrl文件,修改TRAILING NULLCOLS下面文本内容为表对应的字段和分割符(terminated by ','),最后一个字段用(terminated by whitespace),对于日期类型要在字段后定义上日期类型格式(Date(10) "YYYY-MM-DD"),例如:TRAILING NULLCOLS(oldtype terminated by ',',cardno terminated by ',',cardpwd terminated by ',',trackinfo terminated by ',',oldmkt terminated by ',',name terminated by ',',sex terminated by ',',cardflag terminated by ',',birthday Date(10) "YYYY-MM-DD" terminated by ',',idtype terminated by ',',idno terminated by ',',mindate Date(10) "YYYY-MM-DD" terminated by ',',maxdate Date(10) "YYYY-MM-DD" terminated by ',',ljjf terminated by ',',jfye terminated by ',',xfje terminated by ',',lczhye terminated by ',',flqye terminated by ',',addr terminated by ',',zipcode terminated by ',',tel terminated by ',',mobile terminated by whitespace)第六步:将impfile.ctl文件和要导入的csv数据文件拷贝到同一目录下,建议存放在盘符根目录;第七步:在CMD命令中输入oracle安装的bin路径,执行该命令执行如下指令:sqlldr userid=用户名/用户密码@数据库实例control=c:\impfile.ctl log=c:\impfile.log例如:D:\app\product\11.2.0\dbhome_1\BIN>sqlldr userid=dbusrif/future@crmls control=c:\impfile.ctl log=c:\impfile.log。
ORACLE SQL LOADER用法(excel导入oracle)
心之所向,所向披靡SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。
SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。
首先,我们认识一下SQL*LOADER。
在windows下,SQL*LOADER的命令为SQLLDR,在UNIX下一般为sqlldr/sqlload。
如执行:c:\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,discards,partitions)direct -- use direct path (默认FALSE)parfile -- parameter file: name of file that contains parameter specification sparallel -- 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 unus able(默认FALSE)commit_discontinued -- commit loaded rows when load is discontinued(默认FALSE)readsize -- Size of Read buffer (默认1048576) PLEASE NOTE: 命令行参数可以由位置或关键字指定。
利用sqlldr将EXCEL文件导入到ORACLE数据库
利用sqlldr将EXCEL文件导入到ORACLE数据库利用sqlldr将EXCEL文件导入到ORACLE数据库" 系统环境:1、操作系统:Windows 2000 Server,机器内存128M2、数据库:Oracle 8i R2 (8.1.6) for NT 企业版3、安装路径:C:\ORACLE" 实现步骤:"" 1、打开MicroSoft Excel 2000"" 2、文件(F)→新建(N)→工作簿→"" 3、输入以下数据,存盘为test.xls,如图:" 4、文件(F)→另存为(A)→"" 保存类型为:制表符分隔,起名为text.txt,保存到C:\ "" 5、连入SQL*Plus" 以system/manager用户登录," SQL>; conn system/manager"" 创建表结构" SQL>; create table test" (" id number,--序号" username varchar2(10),--用户名" password varchar2(10),--密码" sj varchar2(20)--建立日期" );"" 6、创建SQL*Loader输入数据所需要的文件,均保存到C:\,用记事本编辑:" 控制文件:input.ctl,内容如下:"" load data--1、控制文件标识" infile 'test.txt'--2、要输入的数据文件名为test.txt" append into table test--3、向表test中追加记录" fields terminated by X'09'--4、字段终止于X'09',是一个制表符(TAB)" (id,username,password,sj)-----定义列对应顺序"" a、insert,为缺省方式,在数据装载开始时要求表为空" b、append,在表中追加新记录" c、replace,删除旧记录,替换成新装载的记录" d、truncate,同上测试数据,input.ctl文件的内容:load datainfile 'test.txt'append into table testfields terminated by X'09'(id,name)或load datainfile 'test.txt'append into table testfields terminated by ","(id,name)注:test.txt可以为informix导出的test.dat文件." 7、在DOS窗口下使用SQL*Loader命令实现数据的输入"" C:\>;sqlldr userid=system/manager control=input.ctl" 测试数据:" C:\>;sqlldr userid=vipdl/vipdl123@dgvip control=input.ctl 默认日志文件名为:input.log" 默认坏记录文件为:input.bad"" 8、连接到SQL*Plus中,查看是否成功输入load datainfile 'c:\data_yzd\I0110769.01.BILL'append into table t_icp(SID POSITION(01:11),GSD POSITION(12:14),XZQ POSITION(15:16),YWDM POSITION(17:21),BJFCS POSITION(22:27),JFCS POSITION(28:33),YZ_JE POSITION(34:43),XX_JE POSITION(44:53))sqlldr userid=vipdl/vipdl123@odgvip control='c:\data_yzd\bill.ctl'。
关于oracle导出excel和excel导入oracle的经验总结
关于oracle导出excel和excel导入oracle的经验总结关于oracle导出excel和excel导入oracle的经验总结一、oracle导出excel方法一:最简单的方法---用工具plsql dev执行File =>new Report Window 。
在sql标签中写入需要的sql,点击执行或按快捷键F8,会先吃出查询结果。
在右侧工具栏,可以选择按钮另存为html、copy as html、export results,其中export results按钮中就可以导出excel文件、csv文件、tsv文件、xml文件。
方法二:最专业的方法---用原始工具sqlplus原文参见:/archives/2005/04/eoasqlplusieaae.html我做了一点修改,如下所示:1.main.sql用以设置环境,调用具体功能脚本2.功能脚本-get_tables.sql为实现具体功能之脚本通过这样两个脚本可以避免spool中的冗余信息,参考:如何去除SQLPLUS中SPOOL的冗余信息示例如下:1.main.sql脚本:[oracle@jumper utl_file]$ more main.sqlset linesize 200set term off verify off feedback off pagesize 999set markup html on entmap ON spool on preformat off spool d:/tables.xls@d:/get_tables.sqlspool offexit2.get_tables.sql脚本:[oracle@jumper utl_file]$ more get_tables.sqlselectowner,table_name,tablespace_name,blocks,last_analyzed from all_tables order by 1,2;3.执行并获得输出:[oracle@jumper utl_file]$ sqlplus "/ as sysdba" @d:/main.sqlSQL*Plus: Release 9.2.0.4.0 - Production on Mon Apr 25 10:30:11 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning optionJServer Release 9.2.0.4.0 - ProductionDisconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning optionJServer Release 9.2.0.4.0 - Production[oracle@jumper utl_file]$ ls -l tables.xls-rw-r--r-- 1 oracle dba 69539 Apr 25 10:30 tables.xls[oracle@jumper utl_file]$此处输出为xls文件,通过下图我们可以看到输出效果:把main.sql脚本中的,spool tables.xls更改为spool tables.htm,我们可以获得htm格式输出,效果如下图:方法三:最悲剧的方法,之所以称为悲剧,是因为这个方法其实很简单,但是你可能没有注意。
Oracle数据库使用SQL_Loader导入外部数据的方法详解
官方帮助文档网址:/docs/cd/B19306_01/server.102/b14215/ldr_control_file.htm #i1009196Oracle数据库导入外部数据如何实现SQL*LOADER不用下载啊oracle装好后,在oracle的bin目录下面就有啊sqlldr.exeSQL*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 没有提供将数据导出到一个文件的工具。
5种从Excel数据导入Oracle方法
最近同事遇到了每天手工导入Excel数据到Oracle的问题,他目前的操作是使用PL/SQL Developer中的复制粘贴方法,这样每天都需要进行手工的操作,很明显长期下来的工作量是比较大的,于是找了几种可供使用的导入方法:一、直接使用SQL*Loader 导入SQL*Loader 是Oracle自带的数据加载工具,其数据导入比较专业,有各种参数及选项可供选择,经常是作为数据仓库中大型数据的导入方法选择。
优点:1、可将导入命令写入BAT文件直接批量处理2、导入处理比较专业,提供各种参数选择3、无需操作Oracle所在服务器缺点:1、Excel文件需要另存为txt或csv格式(似乎没有自动完成的方法)总得来说这种方法是最值得采用的,可以自动建立操作系统的批处理文件执行SQLLDR命令,将数据导入原始接收表,并在数据库中设置触发器进行精细操作。
二、使用外部表直接更新Excel数据Oracle的外部表其实也可以满足将外部数据读入数据库的功能,但是其可操作性相比SQL*Loader 还是要小很多优点:1、无需执行导入操作,更新外部文本文件后可直接查询数据2、仅在查询时操作一次数据,对系统资源占用较小缺点:是要有权限,二是文件必须放到 Oracle 服务器上(似乎不能远 程)2、 需要上传文件,而且无法进行多表导入等复杂的操作3、 同样需要将 Excel 文件存储为txt 或csv 格式这种方法对于权限要求高,操作性弱,仅针对于简单的数据导入时使用三、PL/SQL Developer 粘贴法这种方法就比较简单易用了,每次复制粘贴就行,只限于偶尔的导入使用,累死人了。
优点:1、 操作便捷,简单直接2、 仅需要最简单的 update/i nsert/delete table 权限缺点:1、 只能对一张表进行操作,多表操作会十分复杂2、 需要手动操作的工作量较大3、 所有数据需在 Excel 中处理完毕,导入时无法进行任何简单操作具体操作方法:1、 在PL/SQL Developer 中选择需要操作的表,右键 -Edit Data< 也可以在查询窗口 中输入 select * from table_name for update;开那个锁>2、 可以直接在数据窗口中修改或粘贴新的数据 (注意格式);3、 点击那个钩(Post Change ) ;4、 提交数据;四、使用Access 中转 1、需要建立directory 是每天导入就 然后点击打这种方法只是在网上看到了一下,对于Access没有什么研究,但是觉得应该会有以下缺点1、导入无法自动刷新,甚至连简单的点击刷新也没有2、需要建立ODBC、导入、导出等多步操作,工作量极大3、数据导入到Oracle中时,基本上没有可操作性,只能最简单的操作这种方法唯一的优点大概就是可以直接将Excel的数据导入到Access,但是操作步骤也比较多转一下网上说的方法:1、在本地创建一个Access数据库,将Excel数据先导入到Access。
SPOOL、SQLLOADER数据导出导入的一点小总结
SPOOL、SQLLOADER数据导出导入的一点小总结SPOOL、SQLLOADER数据导出导入一、SQLLOADER的CONTROL文件基本格式:LOAD DATAINFILE 'T.DAT' // 要导入的数据文件(格式1)//INFILE 'TT.DAT' // 导入多个文件(可以和格式1并列使用)//INFILE * // 要导入的内容就在CONTROL文件里下面的BEGINDATA后面就是导入的内容(和格式1互斥使用) APPEND INTO TABLE TABLE_NAME//指定装入的表(这里有几种加载方式) //以下是4种装入表的方式//APPEND//原先的表有数据就加在后面//INSERT//装载空表,如果原先的表有数据SQLLOADER会停止默认值//REPLACE//原先的表有数据原先的数据会全部删除//TRUNCATE//指定的内容和REPLACE的相同会用TRUNCATE 语句删除现存数据BADFILE 'C:BAD.TXT' // 指定坏文件地址FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'//装载这种数据: "10","20","30","40","50"//TERMINATED BY X'09' // 以十六进制格式'09'表示文本文件用TAB键分隔//示例文本数据: "10" "20" "30" "40" "50"//TERMINATED BY WHITESPACE // 装载这种数据: "10" "lg" "lg"TRAILING NULLCOLS*************表的字段没有对应的值时允许为空(COL_1,COL_2,COL_FILLER FILLER//FILLER关键字此列的数值不会被装载)//指定的TERMINATED可以在表的开头也可在表的内部字段部分//当没声明FIELDS TERMINATED BY ','时也可以逐个字段来声明//(//COL_1 [INTERGER EXTERNAL] TERMINATED BY ',' ,//COL_2 [DATE "DD-MON-YYY"] TERMINATED BY ',' ,//COL_3 [CHAR] TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'//)// 当没声明FIELDS TERMINATED BY ','用位置告诉字段装载数据//(//COL_1 POSITION(1:2),//COL_2 POSITION(3:10),//COL_3 POSITION(*:16), // 这个字段的开始位置在前一字段的结束位置//COL_4 POSITION(3:10) CHAR(8), // 指定字段的类型//COL_5 POSITION(3:10) "TRIM(:COL_5)", // 挤压两端空格//COL_6 POSITION(3:10) "SEQ.NEXTV AL", // 取SEQUENCE值//)BEGINDATA//对应开始的INFILE*要导入的内容就在CONTROL 文件里10,20,3020,30,40//注意BEGINDATA后的数值前面不能有空格二、CONTROL文件示例:1、普通装载LOAD DATAINFILE *REPLACE INTO TABLE DEPTFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'(DEPTNO,DNAME,LOC)BEGINDATA10,SALES,"""USA"""20,ACCOUNTING,"VIRGINIA,USA"30,CONSULTING,VIRGINIA40,FINANCE,VIRGINIA50,"FINANCE","",VIRGINIA // LOC 列将为空60,"FINANCE",,VIRGINIA // LOC 列将为空2 、FIELDS TERMINATED BY WHITESPACE 和FIELDS TERMINATED BY X'09' 的情况LOAD DATAINFILE *REPLACE INTO TABLE DEPTFIELDS TERMINATED BY WHITESPACEFIELDS TERMINATED BY X'09'(DEPTNO,DNAME,LOC)BEGINDATA10 Sales Virginia3 、指定不装载那一列LOAD DATAINFILE *REPLACE INTO TABLE DEPTFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'( DEPTNO,FILLER_1 FILLER, // 下面的"Something Not To Be Loaded" 将不会被装载//,DNAME,LOC) BEGINDATA20,Something Not To Be Loaded,Accounting,"Virginia,USA"4、POSITION的列子LOAD DATAINFILE *REPLACE INTO TABLE DEPT( DEPTNO POSITION(1:2),DNAME POSITION(*:16), // 这个字段的开始位置在前一字段的结束位置,LOC POSITION(*:29), ENTIRE_LINE POSITION(1:29))BEGINDATA10ACCOUNTING VIRGINIA,USA5 、使用函数日期的一种表达TRAILING NULLCOLS的使用LOAD DATAINFILE *REPLACE INTO TABLE DEPTFIELDS TERMINATED BY ','TRAILING NULLCOLS // 其实下面的ENTIRE_LINE在BEGINDATA后面的数据中是没有直接对应的列的值,//如果第一行改为10,Sales,Virginia,1/5/2000,, 就不用TRAILING NULLCOLS了(DEPTNO,DNAME "UPPER(NAME)", // 使用函数,LOC "UPPER(:LOC)",LAST_UPDATED DATE 'DD/MM/YYYY', // 日期的一种表达方式还有'DD-MON-YYYY' 等ENTIRE_LINE "EPTNO||NAME||:LOC||:LAST_UPDATED")BEGINDATA10,Sales,Virginia,1/5/200020,Accounting,Virginia,21/6/199930,Consulting,Virginia,5/1/200040,Finance,Virginia,15/3/20016 、使用自定义的函数// 解决的时间问题CREATE OR REPLACEFUNCTION MY_TO_DATE( P_STRING IN V ARCHAR2 ) RETURN DATE AS TYPE FMTARRAY IS TABLE OF V ARCHAR2(25);L_FMTS FMTARRAY := FMTARRAY( 'DD-MON-YYYY', 'DD-MONTH-YYYY', 'DD/MM/YYYY', 'DD/MM/YYYY HH24:MI:SS' );L_RETURN DATE;BEGINFOR I IN 1 .. L_FMTS.COUNTLOOPBEGINL_RETURN := TO_DATE( P_STRING, L_FMTS(I) );EXCEPTIONWHEN OTHERS THEN NULL;END;EXIT WHEN L_RETURN IS NOT NULL;END LOOP;IF ( L_RETURN IS NULL )THENL_RETURN :=NEW_TIME( TO_DATE('01011970','DDMMYYYY') + 1/24/60/60 *P_STRING, 'GMT', 'EST' );END IF;RETURN L_RETURN;END;/LOAD DATAINFILE *REPLACE INTO TABLE DEPTFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,DNAME "UPPER(NAME)",LOC "UPPER(:LOC)",LAST_UPDATED "MY_TO_DATE( :LAST_UPDATED )" // 使用自定义的函数)BEGINDATA10,Sales,Virginia,01-april-200120,Accounting,Virginia,13/04/200130,Consulting,Virginia,14/04/2001 12:02:0240,Finance,Virginia,98726829750,Finance,Virginia,02-apr-200160,Finance,Virginia,Not a date7 、合并多行记录为一行记录LOAD DATAINFILE *CONCATENATE 3 // 通过关键字CONCATENATE 把几行的记录看成一行记录INTO TABLE DEPTREPLACE //注意这个例子格式与前边有些不同FIELDS TERMINATED BY ','(DEPTNO,DNAME "UPPER(NAME)",LOC "UPPER(:LOC)",LAST_UPDATED DATE 'DD/MM/YYYY') BEGINDATA10,Sales, // 其实这3行看成一行10,Sales,Virginia,1/5/2000Virginia,1/5/2000// 这列子用CONTINUEIF LIST="," 也可以告诉SQLLDR在每行的末尾找逗号找到逗号就把下一行附加到上一行LOAD DATAINFILE *CONTINUEIF THIS(1:1) = '-' // 找每行的开始是否有连接字符- 有就把下一行连接为一行// 如-10,Sales,Virginia,// 1/5/2000 就是一行10,Sales,Virginia,1/5/2000// 其中1:1 表示从第一行开始并在第一行结束还有CONTINUEIF NEXT 但CONTINUEIF LIST最理想INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','(DEPTNO,DNAME "upper(:dname)",LOC "upper(:loc)",LAST_UPDATED date 'dd/mm/yyyy')BEGINDATA // 但是好象不能象右面的那样使用-10,Sales,Virginia, -10,Sales,Virginia,1/5/2000 1/5/2000-40, 40,Finance,Virginia,13/04/2001Finance,Virginia,13/04/20018 、载入每行的行号LOAD DATAINFILE *INTO TABLE TREPLACE( SEQNO RECNUM //载入每行的行号TEXT POSITION(1:1024))BEGINDATAfsdfasj //自动分配一行号给载入表t 的seqno字段此行为1fasdjfasdfl // 此行为2 ...9 、载入有换行符的数据注意: UNIX 和WINDOWS 不同n & /n< 1 > 使用一个非换行符的字符LOAD DATAINFILE *INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,DNAME "UPPER(NAME)",LOC "UPPER(:LOC)",LAST_UPDATED "MY_TO_DATE( :LAST_UPDATED )",COMMENTS "REPLACE(:COMMENTS,'N',CHR(10))" // REPLACE 的使用帮助转换换行符)BEGINDATA10,Sales,Virginia,01-april-2001,This is the SalesnOffice in Virginia20,Accounting,Virginia,13/04/2001,This is the AccountingnOffice inVirginia30,Consulting,Virginia,14/04/2001 12:02:02,This is the ConsultingnOfficein Virginia40,Finance,Virginia,987268297,This is the FinancenOffice in Virginia< 2 > 使用fix属性LOAD DATAINFILE DEMO17.DAT "FIX 101"INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,DNAME "UPPER(NAME)",LOC "UPPER(:LOC)",LAST_UPDATED "MY_TO_DATE( :LAST_UPDATED )",COMMENTS)BEGINDATA10,Sales,Virginia,01-april-2001,This is the Sales20,Accounting,Virginia,13/04/2001,This is the AccountingOffice in Virginia30,Consulting,Virginia,14/04/2001 12:02:02,This is the ConsultingOffice in Virginia40,Finance,Virginia,987268297,This is the FinanceOffice in Virginia// 这样装载会把换行符装入数据库,下面的方法就不会,但要求数据的格式不同LOAD DATAINFILE DEMO18.DAT "FIX 101"INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'TRAILING NULLCOLS(DEPTNO,DNAME "UPPER(NAME)",LOC "UPPER(:LOC)",LAST_UPDATED "MY_TO_DATE( :LAST_UPDATED )",COMMENTS)BEGINDATA10,Sales,Virginia,01-april-2001,"This is the SalesOffice in Virginia"20,Accounting,Virginia,13/04/2001,"This is the Accounting Office in Virginia"30,Consulting,Virginia,14/04/2001 12:02:02,"This is the ConsultingOffice in Virginia"40,Finance,Virginia,987268297,"This is the Finance< 3 > 使用var属性LOAD DATAINFILE DEMO19.DAT "V AR 3"// 3 告诉每个记录的前3个字节表示记录的长度如第一个记录的071 表示此记录有71 个字节INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,DNAME "UPPER(NAME)",LOC "UPPER(:LOC)",LAST_UPDATED "MY_TO_DATE( :LAST_UPDATED )",COMMENTS)BEGINDATA07110,Sales,Virginia,01-april-2001,This is the SalesOffice in Virginia07820,Accounting,Virginia,13/04/2001,This is the AccountingOffice in Virginia08730,Consulting,Virginia,14/04/2001 12:02:02,This is the ConsultingOffice in Virginia07140,Finance,Virginia,987268297,This is the FinanceOffice in Virginia< 4 > 使用STR属性// 最灵活的一中可定义一个新的行结尾符WIN 回车换行: CHR(13)||CHR(10) ,此列中记录是以A|RN 结束的SELECT UTL_RAW.CAST_TO_RAW('|'||CHR(13)||CHR(10)) FROM DUAL;结果7C0D0ALOAD DATAINFILE DEMO20.DAT "STR X'7C0D0A'"INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,DNAME "UPPER(NAME)",LOC "UPPER(:LOC)",LAST_UPDATED "MY_TO_DATE( :LAST_UPDATED )",COMMENTS)BEGINDATA10,Sales,Virginia,01-april-2001,This is the SalesOffice in Virginia|20,Accounting,Virginia,13/04/2001,This is the AccountingOffice in Virginia|30,Consulting,Virginia,14/04/2001 12:02:02,This is the ConsultingOffice in Virginia|40,Finance,Virginia,987268297,This is the FinanceOffice in Virginia|10 、象这样的数据用nullif 子句10-jan-200002350Flipper seemed unusually hungry today.10510-jan-200009945Spread over three meals.ID POSITION(1:3) NULLIF ID=BLANKS // 这里可以是BLANKS 或者别的表达式// 下面是另一个列子第一行的1 在数据库中将成为NULLLOAD DATAINFILE *INTO TABLE TREPLACE(N POSITION(1:2) INTEGER EXTERNAL NULLIF N='1',V POSITION(3:8))BEGINDATA1 1020lg三、SQLLOADER的命令:SQLLDR USERID=SYS/SYS@DB_SERVICE CONTROL=XXXX.CTL LOG=XXXX.LOGBINDSIZE=1048576 ROWS=100ERRORS=10000 READSIZE=2097152 SILENT=(HEADER,FEEDBACK)关于这些参数的帮助在命令行直接执行SQLLDR可以得到,这里指出BINDSIZE不应该大于READSIZE的值。
5种从Excel数据导入Oracle方法
5种从Excel数据导入Oracle方法最近同事遇到了每天手工导入Excel数据到Oracle的问题,他目前的操作是使用PL/SQL Developer中的复制粘贴方法,这样每天都需要进行手工的操作,很明显长期下来的工作量是比较大的,于是找了几种可供使用的导入方法:一、直接使用SQL*Loader导入SQL*Loader是Oracle自带的数据加载工具,其数据导入比较专业,有各种参数及选项可供选择,经常是作为数据仓库中大型数据的导入方法选择。
优点:1、可将导入命令写入BAT文件直接批量处理2、导入处理比较专业,提供各种参数选择3、无需操作Oracle所在服务器缺点:1、Excel文件需要另存为txt或csv格式(似乎没有自动完成的方法)总得来说这种方法是最值得采用的,可以自动建立操作系统的批处理文件执行SQLLDR命令,将数据导入原始接收表,并在数据库中设置触发器进行精细操作。
二、使用外部表直接更新Excel数据Oracle的外部表其实也可以满足将外部数据读入数据库的功能,但是其可操作性相比SQL*Loader还是要小很多优点:1、无需执行导入操作,更新外部文本文件后可直接查询数据2、仅在查询时操作一次数据,对系统资源占用较小缺点:1、需要建立directory ,一是要有权限,二是文件必须放到Oracle服务器上(似乎不能远程)2、需要上传文件,而且无法进行多表导入等复杂的操作3、同样需要将Excel文件存储为txt或csv格式这种方法对于权限要求高,操作性弱,仅针对于简单的数据导入时使用。
三、PL/SQL Developer粘贴法这种方法就比较简单易用了,每次复制粘贴就行,只限于偶尔的导入使用,要是每天导入就累死人了。
优点:1、操作便捷,简单直接2、仅需要最简单的update/insert/delete table权限缺点:1、只能对一张表进行操作,多表操作会十分复杂2、需要手动操作的工作量较大3、所有数据需在Excel中处理完毕,导入时无法进行任何简单操作具体操作方法:1、在PL/SQL Developer中选择需要操作的表,右键-Edit Data;<也可以在查询窗口中输入select * from table_name for update;然后点击打开那个锁>2、可以直接在数据窗口中修改或粘贴新的数据(注意格式);3、点击那个钩(Post Change);4、提交数据;四、使用Access中转这种方法只是在网上看到了一下,对于Access没有什么研究,但是觉得应该会有以下缺点1、导入无法自动刷新,甚至连简单的点击刷新也没有2、需要建立ODBC、导入、导出等多步操作,工作量极大3、数据导入到Oracle中时,基本上没有可操作性,只能最简单的操作这种方法唯一的优点大概就是可以直接将Excel的数据导入到Access,但是操作步骤也比较多转一下网上说的方法:1、在本地创建一个Access数据库,将Excel数据先导入到Access。
PLSQL导入导出Oracle数据库方法
PLSQL导入导出Oracle数据库方法在Oracle数据库中,我们可以使用PL/SQL来导入和导出数据。
下面是一些常用的方法:1. 使用SQL*Loader工具导入数据:SQL*Loader是Oracle提供的一个强大的数据导入工具。
通过创建一个控制文件和数据文件,可以将数据从外部文件导入到Oracle表中。
以下是一个简单的示例:```sqlLOADDATAINFILE 'data.txt'INTO TABLE empFIELDSTERMINATEDBY','```2. 使用Oracle Data Pump导入导出数据:Oracle Data Pump是Oracle 10g之后引入的一种高效的导入导出工具。
它提供了更快的数据加载和卸载速度,并且可以在导入导出过程中进行并行操作。
以下是一个简单的示例:```sql--导出数据EXPORT SCHEMA scott DIRECTORY=data_pump_dirDUMPFILE=scott.dmp--导入数据IMPORT SCHEMA scott DIRECTORY=data_pump_dirDUMPFILE=scott.dmp```3.使用PL/SQL脚本导入导出数据:我们可以使用PL/SQL脚本编写自定义的导入导出逻辑。
以下是一个简单的示例:```sql--导出数据DECLAREfile_handle UTL_FILE.FILE_TYPE;emp_rec emp%ROWTYPE;BEGINfile_handle := UTL_FILE.FOPEN('DATA_DIR', 'emp_data.txt', 'W');FOR emp_rec IN (SELECT * FROM emp) LOOPUTL_FILE.PUT_LINE(file_handle, emp_rec.empno , ',' ,emp_rec.ename , ',' , emp_rec.job);ENDLOOP;UTL_FILE.FCLOSE(file_handle);END;--导入数据DECLAREfile_handle UTL_FILE.FILE_TYPE;line_text VARCHAR2(200);BEGINfile_handle := UTL_FILE.FOPEN('DATA_DIR', 'emp_data.txt', 'R');LOOPUTL_FILE.GET_LINE(file_handle, line_text);--解析并插入数据ENDLOOP;UTL_FILE.FCLOSE(file_handle);END;```这是一些常用的PL/SQL导入导出Oracle数据库的方法。
EXCEL,TXT文档数据和ORACLE数据互导的方法
2、在结果集里任一行里点击右键,可以看到下图里的选项,选择CSV文件。
这样可以把结果集全部导出成CSV文件。
3、打开EXCEL,新建一个工作簿。
4、选择数据à导入外部数据à导入数据
选择刚刚导出的CSV文件。
这样就可以导入了,最好是在CSV文件里用文本编辑器打开把里面的“”全部去掉再导入。
在保存类型里选择“CSV(逗号分隔)(*.CSV)”,如下图:
保存完成。
三、打开plsqldev,用plsqldev进行导入操作
方法:
选择工具à文本导入器…
选择刚刚转换的CSV文件。
选择后plsqldev会预览数据,如下图:
导入前要创建好要导入到的表,如果未创建,这个时候可以点击下图中的最后一个图标,进行创建表:
5、在可用的表和列里选择要导出的表就可以导出了。
这种方法还可以编辑查询语句,十分的方便。
二、直接用EXCEL访问数据库。
我个人认为这种方法比较好。
方法:
1、打开EXCEL,新建一个工作簿。
2、数据à导入外部数据à新建数据库查询…
选择orcl*,点击确定。
这里如果没有建立数据源,要新建数,点击OK。
EXCEL,TXT文档数据和ORACLE数据互导的方法
EXCEL,TXT文档和ORACLE数据互导的方法
因为图片不方便贴,所以详细说明,请大家参看附件。
一、打开EXCEL文件
二、把要导入的EXCEL文件转换为CSV文件或TXT文件。
方法:
点击文件à另存为,弹出另存为文件窗口,如下图:
创建好后在“到Oracle的数据”里指定好所有者,表,字段就可以进行导入了
excel导入oracle的几种方法
excel导入oracle的几种方法有多种方法可以将Excel数据导入Oracle数据库,以下是其中几种常用的方法:1. 使用Oracle SQL Developer:可以使用Oracle SQL Developer 工具来导入Excel数据。
在SQL Developer中,选择要导入数据的表,然后右键单击并选择“导入数据”。
接下来,选择Excel文件并指定数据导入的规则和映射。
2. 使用Oracle Data Integrator(ODI):ODI是Oracle提供的一种数据集成工具,可以在不同的数据源之间进行数据集成和转换。
可以使用ODI来将Excel数据导入Oracle数据库。
首先,创建一个ODI项目并建立Excel和Oracle数据库的连接。
然后,在ODI中配置数据源和目标,并创建一个数据映射来定义Excel数据到Oracle表的映射。
最后,运行数据映射来将Excel数据导入Oracle。
3. 使用PL/SQL Developer:如果你有PL/SQL Developer工具,可以使用其提供的数据导入功能将Excel数据导入Oracle数据库。
在PL/SQL Developer中,选择要导入数据的表,然后从菜单栏选择“导入数据”。
接下来,选择Excel文件并指定数据导入的规则和映射。
4. 使用Oracle SQL*Loader:SQL*Loader是Oracle提供的一种用于加载数据到数据库的实用工具。
可以使用SQL*Loader来将Excel数据加载到Oracle数据库。
首先,将Excel数据转换为适合SQL*Loader的文本文件格式,例如csv文件。
然后,通过编写一个控制文件来定义数据导入的规则和映射。
最后,运行SQL*Loader来加载数据到Oracle数据库。
以上是几种常用的方法,选择适合你的环境和需求的方法来导入Excel数据到Oracle数据库。
sqlserver怎么将excel表的数据导入到数据库中
sqlserver怎么将excel表的数据导⼊到数据库中在数据库初始阶段,我们有些数据在EXCEL中做好之后,需要将EXCEL对应列名(导⼊后对应数据库表的字段名),对应sheet(改名为导⼊数据库之后的表名)导⼊指定数据库,相当于导⼊⼀张表的整个数据。
导⼊之前需要检查是否存在同名的表,导⼊的数据表以“$”结尾就是为了避免表重复,以作区分。
下⾯就来看看具体操作步骤。
1. 1 打开SQL Server Management Studio,按图中的路径进⼊导⼊数据界⾯。
2. 2 导⼊的时候需要将EXCEL的⽂件准备好,不能打开。
点击下⼀步。
3. 数据源:选择“Microsoft Excel”除了EXCEL类型的数据,SQL还⽀持很多其它数据源类型。
4. 选择需要导⼊的EXCEL⽂件。
点击浏览,找到导⼊的⽂件确定。
5. 再次确认⽂件路径没有问题,点击下⼀步。
6. 默认为是使⽤的WINODWS⾝份验证,改为使⽤SQL⾝份验证。
输⼊数据库密码,注意:数据库,这⾥看看是不是导⼊的数据库。
也可以在这⾥临时改变,选择其它数据库。
7. 选择导⼊数据EXCEL表内容范围,若有⼏个SHEET表,或⼀个SHEET表中有些数据我们不想导⼊,则可以编写查询指定的数据进⾏导⼊。
点击下⼀步。
8. 选择我们需要导⼊的SHEET表,⽐如我在这⾥将SHEET表名改为price,则导⼊后⽣⾯的SQL数据库表为price$。
点击进⼊下⼀步。
9. 点击进⼊下⼀步。
10. 在这⾥完整显⽰了我们的导⼊的信息,执⾏内容,再次确认⽆误后,点击完成,开始执⾏。
11. 可以看到任务执⾏的过程和进度。
12. 执⾏成功:我们可以看看执⾏结果,已传输1754⾏,表⽰从EXCEL表中导⼊1754条数据,包括列名标题。
这样就完成了,执⾏SQL查询语句:SELECT * FROM price$就可以查看已导⼊的数据内容。
使用SQL Load导入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导⼊外部数据详解1.命令语法sqlldr userid=数据库连接 control=控制⽂件 log=/tmp/test.log data=/tmp/test.csv rows=10userid -- Oracle 的 username/password[@servicename]control -- 控制⽂件,可能包含表的数据log -- 记录导⼊时的⽇志⽂件,默认为控制⽂件(去除扩展名).logbad -- 坏数据⽂件,默认为控制⽂件(去除扩展名).baddata -- 数据⽂件,⼀般在控制⽂件中指定。
⽤参数控制⽂件中不指定数据⽂件更适于⾃动操作errors -- 允许的错误记录数,可以⽤他来控制⼀条记录都不能错rows -- 多少条记录提交⼀次,默认为 64skip -- 跳过的⾏数,⽐如导出的数据⽂件前⾯⼏⾏是表头或其他描2.控制⽂件-- 1) insert --为缺省⽅式,在数据装载开始时要求表为空-- 2) append --在表中追加新记录-- 3) replace --删除旧记录(⽤ delete from table 语句),替换成新装载的记录-- 4) truncate --删除旧记录(⽤ truncate table 语句),替换成新装载的记录控制⽂件格式load datainfile '要导⼊的⽂件路径'append into table 表名FIELDS TERMINATED BY whitespace //数据中每⾏记录⽤空格分隔trailing nullcols //表的字段没有对应的值时允许为空(字段1,last_login DATE "YYYY-MM-DD HH24:MI:SS" //指定接受⽇期的格式,相当⽤ to_date() 函数转换)。
使用sqlldr命令导入资料到Oracle数据库表中的示例说明
使⽤sqlldr命令导⼊资料到Oracle数据库表中的⽰例说明CSV: Comma-Separated Values(逗号分隔值)的缩写,是以逗号分隔字段的多⾏⽂本⽂件sqlldr 是sql*loader的缩写,此⼯具在安装完整版的Oracle客户端后就有使⽤sqllldr可以将有规律的⽂本数据(如csv)导⼊数据表导⼊⽰例:将csv⽂本⽂件andon.txt导⼊到manpowertest中的testandon表中testandon表结构create table TESTANDON(build_no VARCHAR2(5),device_no VARCHAR2(5),btn_no VARCHAR2(5),flag VARCHAR2(1),data_time DATE --此为时间格式,导⼊时要作特殊处理)1、⽤记事本或其它⽂本软件创建⼀个.ctl导⼊控件⽂件,此处以C:\andon.ctl为例,内容为OPTIONS(SKIP=1) --跳过1⾏,即跳过csv⽂件的第⼀⾏表头不导⼊load datainfile 'C:\andon.txt' --要导⼊的csv⽂本的路径append into table manpowertest.testandon --要导⼊到数据库中哪个表fields terminated by "," --要导⼊的⽂本是以什么符号分隔字段的,这⾥是逗号(build_no, --要导⼊到表中的哪些字段device_no,btn_no,flag,data_time timestamp "yyyy-mm-dd hh24:mi:ss" --由于数据表中此字段类型为date类型,并⾮⽂字类型,使⽤timestamp "yyyy-mm-dd hh24:mi:ss"进⾏格式转换)2、在cmd中执⾏sqlldr命令如下sqlldr userid=manpowertest/manpowertest@ora32 control=c:\andon.ctl log=c:\andon.log附檔1:andon.txt栋号,设备号,按钮代码,开关状态,触发时间A2-1,4,2,1,2014-10-29 15:14:13A2-1,30,2,0,2014-10-29 14:51:36A2-2,10,2,0,2014-10-29 14:18:53A2-2,11,2,0,2014-10-29 15:11:07A2-2,12,2,0,2014-10-29 14:40:13附檔2:andon.ctLOPTIONS(SKIP=1)load datainfile 'C:\andon.txt'append into table manpowertest.testandon fields terminated by ","(build_no,device_no,btn_no,flag,data_time timestamp "yyyy-mm-dd hh24:mi:ss")。
将CSV、EXCEL、TXT等文件导入到oracle中的具体做法
将CSV、EXCEL、TXT等文件导入到oracle中的具体做法方法一,使用SQL*Loader这个是用的较多的方法,前提必须Oracle数据中目的表已经存在。
大体步骤如下:1 将excle文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的control.ctl时要将字段终止符改为','(fields terminated by ','),假设保存到E盘根目录。
2 如果没有存在的表结构,则创建,假设表为test,有两列为dm,ms。
3 用记事本创建SQL*Loader控制文件,网上说的文件名后缀为ctl,其实我自己发现就用txt后缀也行。
比如命名为control.ctl,内容如下:(--后面的为注释,实际不需要)load data --控制文件标识infile 'e:\text.csv' --要输入的数据文件名为test.txtappend into table test--向表test中追加记录fields terminated by X'09'--字段终止于X'09',是一个制表符(TAB)如果字段数据有"",可加上optionally enclosed by '"'trailing nullcols(dm,ms) --定义列对应顺序备注:数据导入的方式上例中用的append,有一下几种:insert,为缺省方式,在数据装载开始时要求表为空;append,在表中追加新记录;replace,删除旧记录,替换成新装载的记录;truncate,同replace。
4 在命令行提示符下使用SQL*Loader命令实现数据的输入sqlldr userid=system/manager@orcl control='e:\control.ctl' log=e:\log.txt bad=e:\bad.txt方法二利用PLSQL Developer使用PLSQL Developer工具,这个可是大名鼎鼎的Oracle DBA 最常使用的工具。
如何使用SQLloader导入数据
SQL_loader批量上传数据1.注释在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE 表中。
如果是小数据量,如几十条至几百条,那么用plsql dev工具,在查询命令后加上for update 然后解锁,把数据复制粘贴进去就可以了。
但如果遇到大数据量几万至几十万时,上述方法就不可行了。
如下介绍如何使用oracle自带的sqlloader上传数据。
2.SQL_LOADER上传数据2.1sql_loader说明sql*loader是oracle自带程序。
需要上传数据的本机只要安装了oracle数据库或客户端就会自动集成该工具。
但是不同的版本对控制文件的写法要求有所不同。
具体可参见2.3节或者附件控制文件的内容。
2.2编辑数据文件要使用sql*loader,其数据文件必须是两种,一种是*.txt 的文本文件,另一种是*.csv的文件。
例如,需要上传的数据是使用excel编辑的,那么只需要将excel另存为[制表符分割的txt 文件]或者另存为[逗号分割的csv 文件]即可。
上图是将excel文件另存为“文本文件(制表符分割)(*.txt)”文件格式后的效果要将excel文件转换成csv格式同上面一样,另存为“CSV(逗号分割)(*.csv)”格式即可。
如下图:注意:CSV格式的文件打开后跟excel的样式差不多,但实际存储方式不一样。
在磁盘上CSV格式的文件中每个格子中的数据使用逗号分割开存储的。
这样的存储方式很有用,方面后面写控制文件。
控制文件在控制读取数据的时候直接以逗号为标记读取数据。
其实,plsql dev在导出文件的时候就可选择存储为csv格式。
按照以上方法,数据文件就准备好了。
2.3编写控制文件控制文件其实就是SQL_LOADER上传数据时需要运行的脚本,其后缀名为ctl。
控制文件写明了数据文件的位置、加载数据的方式、加载到哪个表、如何读取数据等信息。
下面是一段简单、完整的控制文件的截图及解释:图注:编写控制文件时用文本文件编写好,修改后缀名为ctl即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实现步骤:
1、打开MicroSoft Excel 文件
,有两列:kid,productCode。
3、将文件另存为txt文件,如下图。
保存类型为:制表符分隔,起名为data.txt,在sqlLoader中用X’09’来表示。
5.在oracle中建立一个表,如在fdb建立表productcost
-- Create table
createtable PRODUCTCOST_01
(
KID INTEGER,
PRODUCTCODE VARCHAR2(20),
UNITPRICE NUMBER(18,2)
);
6、创建SQL*Loader输入数据所需要的文件,均保存到C:\,用记事本编辑:控制文件:do.ctl,内容如下:
Load data
INFILE 'Data.txt'
append into table productcost_01
fields terminated by X'09'
optionally enclosed by '”'
trailingnullcols
(
kid,
productcode
)
详细说明:
load data--1、控制文件标识
infile 'data.txt'--2、要输入的数据文件名为test.txt
append into table productcost_01--3、向表test中追加记录
fields terminated by X'09'--4、字段终止于X'09',是一个制表符(TAB)(kid, productcode)--定义列对应顺序
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
7、编辑批处理文件do.dat
sqlldrv_finance_link/link@vanclcw control=do.ctl log=LoadDatalog.txt
此批处理文件调用sqlldr,这个是安装完Oracle后的工具。
此外,执行完后还会有日志文件。
默认日志文件名为:LoadDatalog.log
默认坏记录文件为:data.bad
8、执行导入
点击do.dat文件,会自动执行,如下图:。