ORACLE SQL LOADER用法(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并连接到目标数据库。
EXCEL与ORACLE间的数据互传法

众所周知,MicrosoftExcel能很直观而方便地进行数据输入,统计,生成图表,但它的数据管理能力有限,对大量的数据查询能力不足,如果利用它数据计算方面的优点和大型数据库ORACLE的数据查询优点,可以设计出功能强大的数据处理系统。
假设与Excel数据文件相对应的职工情况表EMP已在ORAC LE系统中创建,此表中各字段按照顺序分别是职工代号( Emp—No),职工姓名(Ename),工资(Salary),雇用时间(Hiredate)。
本文将通过此例来介绍Excel与ORACL E数据交换的具体步骤。
1、将Excel中的数据装入ORACLE数据库通过ORACLE数据库系统的高级应用工具SQL*Loader 可以将原来的Excel中存储的数据直接装入ORACLE数据库的表中。
首先,在MicrosoftExcel中完成表格数据输入后,选择“保存文件”命令,在出现对话框的“文件类型”栏中选取“格式化文本文件(空格分隔)”以形成一个标准格式化文本文件(*.PRN)或是选取“CSV(逗号分隔)”形成一个逗号定界文件(*.CSV)。
这两者的区别是:标准格式的文本文件中每个记录等长,数据间按原库文件字段长度紧凑排列,字符型字段数据左对齐,数据型字段数据右对齐,不足部分用空格补足。
逗号定界文件特点是各记录可不等长,字段按其定义顺序依次排列,字段间用逗号分隔,字符型字段和数据型字段的左右端空格被消去。
因为这两种格式文件有不同的数据装入方法,假如我们将职工情况EMP表存为EMP.CSV,数据变成如下形式:120,JOE,1192.64,93/04/11121,KERT,309.60,87/01/1423,PETER,1500.25,84/03/12124,SMITH,678.00,91/01/0715,YOUNG,2390.12,80/05/03接着,通过记事本建立以下控制文件,它包含了数据文件的名称及其格式,文件字段如何定界,数据类型是怎样等内容,将该装载控制文件保存为EMP.CTL:LOADDATA INFILE 'C:\EMP.CSV’BADFILE 'EMP.BAD' DISCARDFILE 'EMP.DSC' APPEND INTOTABLEEMP FILEDS TERMINATED BY "," (Emp-No,Ename,Salary,HiredateDATA(8) "Y Y/MM/DD") 之后,双击SQL*Loader图标,进入ORA CLE7的数据装载工具,在弹出的SQLLOADER主屏幕对话框中,分别输入用户登录名,密码,数据库名称和控制文件名,确认后进行数据装载。
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 sqluldr用法

oracle sqluldr用法
OracleSQL*Loader的用法是将大量数据从外部文件加载到Oracle数据库中。
SQL*Loader是一个命令行工具,使用其语法基于控制文件和数据文件来加载数据。
要使用SQL*Loader,必须创建一个控制文件,其中包含数据文件的描述,以及数据如何被加载到表中的说明。
以下是SQL*Loader的一些用法:
1.控制文件
控制文件是SQL*Loader的核心组件。
它描述了要加载的数据文件的结构和格式。
控制文件包含以下信息:
- 数据文件的名称和位置
- 数据字段的名称和类型
- 数据字段的分隔符和引用符
- 数据加载的表和列名称
2.数据文件
SQL*Loader使用数据文件将数据加载到数据库中。
数据文件必须与控制文件结构相匹配。
数据文件的格式可以是文本文件、定长文件或可分隔文件。
3.数据加载
使用SQL*Loader加载数据时,必须指定控制文件和数据文件的名称和位置。
以下是一个例子:
sqlldr control=mycontrol.ctl data=mydata.dat
log=mylog.log
该命令将加载mydata.dat文件中的数据到数据库中,并将日志记录到mylog.log文件中。
4.高级特性
SQL*Loader还支持高级特性,如并行加载、条件加载和转换数据。
这些特性可以提高加载数据的效率和灵活性。
总之,Oracle SQL*Loader是一个强大的工具,可用于快速加载大量数据到Oracle数据库中。
掌握其用法可以帮助开发人员提高数据处理的效率和质量。
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 在加载数据时会生成一个日志文件,用于记录加载过程中的错误和警告信息。
通过查看日志文件,可以了解加载过程中是否发生了错误,并可以根据其提供的信息进行调试和修复。
利用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'。
excel导入ORACLE的四个方法

excel导入ORACLE的四个方法文章分类:数据库EXCEL里导入ORACLE有四种方法,结合网上的写写:1 使用sql *loaderSQL*LOADER是oracle的数据加载工具,在NT下sql*loader的命令为SQLLDR,在UNIX下一般为SQLLDR/SQLLOAD。
通常用来将操作系统文件迁移到oracle数据库中。
它是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(direct,parallel)。
但这种方法要求存储数据的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/manager control=’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)2 使用plsql developerPL/SQL Developer是一种专门用于开发、测试、调试和优化oracle PL/SQL存储程序单元,比如触发器,存储过程,函数和程序包等集成开发环境。
关于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格式输出,效果如下图:方法三:最悲剧的方法,之所以称为悲剧,是因为这个方法其实很简单,但是你可能没有注意。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
心之所向,所向披靡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: 命令行参数可以由位置或关键字指定。
前者的例子是 'sqlloadscott/tiger foo';后者的例子是 'sqlload control=foouserid=scott/tiger'.位置指定参数的时间必须早于但不可迟于由关键字指定的参数。
例如,'SQLLOAD SCott/tiger control=foo logfile=log', 但'不允许 sqlload scott/tiger control=foo log',即使允许参数 'log' 的位置正确。
c:\我们可以从中看到一些基本的帮助信息.我们知道,SQL*LOADER只能导入纯文本,所以我们现在开始以实例来讲解其用法(excel-oracle)。
1.将excle文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔), 控制文件中要将字段终止符改为X’09’(fields terminated by X'09' );选择类型为csv(逗号分隔)也行,但是在写后面的控制文件时要将字段终止符改为逗号','( fields terminated by ',' ),假设保存到c盘根目录。
2.如果没有存在的表结构,则创建,假设表为test,有两列为dm,ms,必须先建好表.3.用记事本创建SQL*Loader控制文件,文件名后缀为ctl,用txt后缀也行。
比如命名为control.ctl,存于C盘,内容如下:load data --控制文件标识infile 'c:\test.txt' --要导入的数据文件名(文件名要和表名相同,文件地址必须写完整,不能只写文件名不写盘符)append into table test --向oracle表test中追加记录,从最后一条开始追加fields terminated by X'09' --字段终止于X'09',是一个制表符(TAB)(dm,ms)--定义列对应顺序(oracle表中的字段名)说明:数据导入的方式上例中用的append,有一下几种:insert,为默认方式,在数据装载开始时要求表为空;append,在表中追加新记录;replace,删除旧记录,替换成新装载的记录;truncate,与replace相同。
terminated by ',' 指用逗号分隔terminated by whitespace 结尾以空白分隔4.加载格式:sqlldr userid=(用户名)/(数据库密码)control='c:\control.ctl' (控制文件)log=XXX.out(日志文件,可以不要)此时我们执行加载:D:\>sqlldr userid=system/manager control=’c:\control.ctl’ log=resulthis.outSQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 10:31:57 2002(c) Copyright 1999 Oracle Corporation. All rights reserved.达到提交点,逻辑记录计数2达到提交点,逻辑记录计数3已经成功!我们可以通过日志文件来分析其过程:resulthis.out内容如下:SQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 10:31:57 2002(c) Copyright 1999 Oracle Corporation. All rights reserved.控制文件: result.ctl数据文件: result.csv错误文件: result.bad废弃文件: 未作指定:(可废弃所有记录)装载数: ALL跳过数: 0允许的错误: 50绑定数组: 64 行,最大 65536 字节继续: 未作指定所用路径: 常规表RESULTXT已载入从每个逻辑记录插入选项对此表INSERT生效列名位置长度中止包装数据类型------------------------------ ---------- ----- ---- ---- --------------------- RESULTID FIRST* , CHARACTERWEBSITE NEXT * , CHARACTERIPPORT NEXT * , CHARACTERSTATUS NEXT * WHT CHARACTER表RESULTXT:3 行载入成功由于数据错误, 0 行没有载入。
由于所有 WHEN 子句失败, 0 行没有载入。
由于所有字段都为空的, 0 行没有载入。
为结合数组分配的空间: 65016字节(63行)除绑定数组外的内存空间分配: 0字节跳过的逻辑记录总数: 0读取的逻辑记录总数: 3拒绝的逻辑记录总数: 0废弃的逻辑记录总数: 0从星期二 1月 08 10:31:57 2002开始运行在星期二 1月 08 10:32:00 2002处运行结束经过时间为: 00: 00: 02.70CPU 时间为: 00: 00: 00.10(可六、并发操作sqlldr userid=/ control=result1.ctl direct=true parallel=truesqlldr userid=/ control=result2.ctl direct=true parallel=truesqlldr userid=/ control=result2.ctl direct=true parallel=true 当加载大量数据时(大约超过10GB),最好抑制日志的产生:SQL>ALTER TABLE RESULTXT nologging;这样不产生REDO LOG,可以提高效率。
然后在CONTROL文件中load data上面加一行:unrecoverable此选项必须要与DIRECT共同应用。
在并发操作时,ORACLE声称可以达到每小时处理100GB数据的能力!其实,估计能到1学习使人进步-10G就算不错了,开始可用结构相同的文件,但只有少量数据,成功后开始加载大量数据,这样可以避免时间的浪费。