Oracle使用SqlLoad导入Excel大数据操作方法

合集下载

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 种⽅法在记录多时是个噩梦,需三五百条的分批提交,否则客户端会死掉,⽽且导⼊过程很慢。

使用PLSQL工具实现Oracle导入导出Excel

使用PLSQL工具实现Oracle导入导出Excel

使用PL/SQL实现ORACLE导入导出Excel excel格式的数据在和oracle格式的数据在转换的过程中要通过access数据库,本文不用通过转换就能直接把excel格式的数据放到oracle数据库里。

1 oracle导出excel格式
在机子上安装PL/SQL并登陆,点击new-Report Window(文件—报告窗口),在打开的窗口里输入SQL语句,操作如下图:
在打开的窗口里写出你要导出的数据的SQL语句,写好SQL后执行一下你写好的SQL,或是点一下F8。

操作如图
在查询出来数据右面有一排按钮。

点击Exprot Results..按钮,选择Excel操作如图:
点击后会出现下图,在excel里面打开你刚查询出来的那些数据,如下图:
然后把该EXCEL存在本机上就可以了。

2 Excel数据导入到oracle
打开你要导入的Excel数据。

另存为“文本文件(以逗号分隔).txt”文件。

打开PL/SQL 并登陆,选择tools-Text Importer(工具—文本导入器),出现如下图界面:
选择open data file 按钮,选择刚存为txt格式的文件,出现如下图界面
然后点击Date to Oracle按钮,出现图下图界面
选择导入到的用户、导入到的表,并把各字段同表里的字段对应,如把该数据导入到一张新表中,点击界面中的creat table按钮,新建表,如下图
所有的字段都对应上后,发现,最下面的import按钮由灰色变亮了,点击Import 按钮,excel里的数据就会部导入到了oracle表里了。

在导入时还可以选择每次提交的数据条数和是否覆盖,操作如图。

Oracle11g--使用PLSQL进行excel、csv、txt文件的数据导入

Oracle11g--使用PLSQL进行excel、csv、txt文件的数据导入

Oracle11g--使⽤PLSQL进⾏excel、csv、txt⽂件的数据导⼊Oracle 11g -- 使⽤PLSQL进⾏excel、csv、txt⽂件的数据导⼊1、导⼊ txt/csv ⽂件 (使⽤ Text Importer)创建表结构:create table student(id int,name varchar(255),birthday varchar(255),sex varchar(255))创建表数据-student.txt(分隔符为’\t’):01 赵雷 1990-01-01 男02 钱电 1990-12-21 男03 孙风 1990-05-20 男04 李云 1990-08-06 男05 周梅 1991-12-01 ⼥06 吴兰 1992-03-01 ⼥07 郑⽵ 1989-07-01 ⼥08 王菊 1990-01-20 ⼥使⽤Text Importer导⼊⼯具:然后点击下⽅的import进⾏导⼊。

遇到问题:解决⽅法:原始数据的⽇期是⽤”-”分隔开的,并不是默认的⽇期数字的形式,这⾥可以不使⽤to_date()进⾏转换,保留原来的格式即可。

再次import即可导⼊成功,查询数据如下:注:如果有主键约束会⾃动覆盖掉相同键的记录2、导⼊excel⽂件(excel转csv)准备的excel⽂件如下:清空Oracle中表student的数据:truncate table student;1)尝试导⼊⼀:使⽤ODBC Importer导⼊⼯具User/System DSN中没有选项,并且出现问题:解决过程(fail了):⾃⼰电脑是64位系统,⽽ODBC数据源管理程序是32位的,需要⼿动添加新excel数据源DSN驱动:运⾏C:\Windows\SysWOW64\odbcad32.exe点击添加,选择如下图所⽰Microsoft Excel Driver(*.xls)但是重启PLSQL或是服务之后还是识别不到新增的驱动。

ORACLE SQL LOADER用法(excel导入oracle)

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: 命令行参数可以由位置或关键字指定。

ORACLE中如何使用SQLLOAD批量添加数据

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加载数据之前,应该先创建目标表,确保表的结构与控制文件中描述的一致。

利用sqlldr将EXCEL文件导入到ORACLE数据库

利用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'。

sql语句中引用excel -回复

sql语句中引用excel -回复

sql语句中引用excel -回复SQL语句中引用Excel在数据处理和分析的过程中,经常需要将Excel表格中的数据导入到数据库中进行进一步的处理和分析。

为了实现这个目标,可以使用SQL语句来引用Excel表格。

本文将逐步讲解如何使用SQL语句中引用Excel表格的过程。

第一步:创建Excel表格首先,我们需要创建一个Excel表格,该表格将包含我们需要导入到数据库中的数据。

在Excel中,我们可以定义表格的列名和数据类型,并填充数据。

确保Excel表格中的列名与数据库表中的字段名称相匹配,这样才能正确地将数据导入到数据库中。

第二步:保存Excel表格为CSV文件在将数据从Excel导入到数据库之前,我们需要将Excel表格保存为CSV (逗号分隔值)文件。

这样,我们可以使用SQL语句中的LOAD DATA INFILE命令来导入数据。

要将Excel表格保存为CSV文件,请按照以下步骤操作:1. 在Excel中打开表格。

2. 单击“文件”菜单,选择“另存为”选项。

3. 在“文件类型”下拉菜单中选择“CSV(逗号分隔)”。

4. 输入文件名并选择保存位置,然后单击“保存”。

第三步:创建数据库表在导入数据之前,我们需要创建一个数据库表来存储Excel表格中的数据。

在创建表时,需要确保表的列名和数据类型与Excel表格中的列名和数据类型相匹配,以便正确地导入数据。

下面是一个创建数据库表的示例SQL语句:CREATE TABLE table_name (column1 datatype,column2 datatype,...);请将上述代码中的“table_name”替换为你希望创建的数据库表的名称,并根据Excel表格中的列名和数据类型来定义表的结构。

第四步:导入数据到数据库有了Excel表格的CSV文件和数据库表的结构,我们可以使用SQL语句中的LOAD DATA INFILE命令来将数据导入到数据库中。

ORACLE-SQLLOAD导入外部数据详解

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() 函数转换)。

oracle大数据量的导入和导出

oracle大数据量的导入和导出

oracle大数据量的导入和导出[ 录入:admin | 日期:2007-05-21 | 作者:| 来源:| 阅读:882 ]在oracle中批量数据的导出是借助sqlplus的spool来实现的。

批量数据的导入是通过sqlloa d来实现的。

在oracle中批量数据的导出是借助sqlplus的spool来实现的。

批量数据的导入是通过sqlloa d来实现的。

大量数据的导出部分如下:/**************************** sql脚本部分demo.sql begin**************************//*************************** @author meconsea* @date 20050413* @msn meconsea@* @Email meconsea@**************************///##--markup html:html格式输出,缺省为off//##--autocommit:自动提交insert、update、delete带来的记录改变,缺省为off//##--define:识别命令中的变量前缀符,缺省为on,也就是'&',碰到变量前缀符,后面的字符串作为变量处理.set colsep' '; //##--域输出分隔符set echo off; //##--显示start启动的脚本中的每个sql命令,缺省为onset feedback off; //##--回显本次sql命令处理的记录条数,缺省为onset heading off; //##--输出域标题,缺省为onset pagesize 0; //##--输出每页行数,缺省为24,为了避免分页,可设定为0。

set linesize 80; //##--输出一行字符个数,缺省为80set numwidth 12; //##--输出number类型域长度,缺省为10set termout off; //##--显示脚本中的命令的执行结果,缺省为onset timing off; //##--显示每条sql命令的耗时,缺省为offset trimout on; //##--去除标准输出每行的拖尾空格,缺省为offset trimspool on; //##--去除重定向(spool)输出每行的拖尾空格,缺省为off spool C:\data\dmczry.txt;select trim(czry_dm),trim(swjg_dm),trim(czry_mc) from dm_czry;spool off;EOF/************************ demo.sql end***********************/在数据导入的时候采用sqlload来调用,在该部分调用的时候用java来调用sqlload。

ORACLE中如何使用SQLLOAD批量添加数据

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批量添加数据也需要注意以下事项:-数据准备:数据文件必须事先准备好,并且该文件必须符合数据库表的结构和约束,例如字段数量和类型等。

图解运用PLSQL工具导入Excel数据

图解运用PLSQL工具导入Excel数据

如何用PL/SQL将EXCEL数据导入到ORACLE数据库中举例如下:数据库版本为oracle10g 10.2.0.3.0用户为HR,表为HSALARY表PL/SQL工具版本为7.1.5.13981、查看要导入的表的结构2、准备导入的数据,EXCEL版本为2003,文件名为date.xls存放位置在D:\第一行与数据库的列名一一对应,以下为要导入的数据.导入数据要符合表的完整性定义3、使用PL/SQL的工具Tools在Tools菜单下选择ODBC Importer工具4、在ODBC Importer的user/system DSN中选择Excel Files4、在User Name 中输入要导入表所属的用户名,Password 中输入登录密码,本例中数据库用户名为HR ,之后点击Connect按钮5、点击Connect按钮后会弹出”选择工作薄”对话框,通过”驱动器(V):”,选择文件所存放的位置,本例date.xls放在D盘根目录下,在”文件类型(T):”中选择Excel文件(*.xls),在”文件类型(T):”上方的空表框中选择要导入的文件,点击该文件后在”数据库名(A)”中显示要导入的文件名.本例中为”date.xls”选择完成后点击”确定”按钮5、点击确定按钮后,在接下来弹出的对话框“Table/Query”中选择import Table,本例中数据放在Excel表的sheet1$中,点击’D:\date’,’Sheet1$’在Result Preview中将显示要导入的数据.6、点击Date to Oracle设置Oracle相关设置在Owner中选择HR Table中选择数据要导入的表在Field中选择相对应的列名,在Filedtype 中选择对应的列类型,String代表字符型,Number代表数字,Date代表日期.本例中JOB_ID ,JOB_TITLE为V ARCHAR2,选择String.7、选择完毕后点击Import 按钮,系统会显示导入的数据数量以及时间.本文多受以下链接指导/s/blog_81137af20100utgc.html。

PLSQL导入Excel数据—对大量Excel数据的导入相当的给力

PLSQL导入Excel数据—对大量Excel数据的导入相当的给力

PLSQL导入Excel数据—对大量Excel数据的导入相当的给力
用Pl*SQL将Excel中数据导入到oracle中
(1)首先,可以不按照数据库中的字段存放顺序,编辑形成Excel表中的数据,准备导入到oracle中:
(2)把Excel文件另存为(文本文件(制表符分隔)(*.txt))在另存为之前要选中Excel中要另存为的数据,否则形成的txt文件可能导入不了pl*sql中:
(3)将新生成的数据录入.txt文件导入到Pl*SQL
进入Pl*SQL,选择菜单栏中的工具>文本导入器,进入到文本导入器的页面后,先点击“来自文本文件的数据”选项卡,然后点击打开按钮,选择数据录入.txt文件。

在选择之前必须要把相应的Excel文件关闭,否则txt文件无法导入:
(4)此时“文件数据”中会显示:
(5)在“配置”进行配置:
如果不将标题名勾选上,则会导致字段名也当做记录被导入到数据库中,影响正确录入。

说明:由于在Excel中,超过15位的数字后三位会显示为0,需要在输入的数值前输入英文单引号,这样数值就能正常显示了。

由于身份证号码是18位的数字,所以其前面有一个单引号,可以通过(4)中的文件数据中看到身份证号码相对应的字段值前面确实有一个单引号,那么在配置中设置字段开始位置时,就应将相对位置设置为1。

(6)“结果预览”中可以看到:
(7)点击“到Oracle中的数据”选项卡:
(8)点击下方的“导入”按钮:
可以看到导入成功。

使用SQLLoad导入excel

使用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)。

XORACLE数据导入之SQLLOAD外部数据导入

XORACLE数据导入之SQLLOAD外部数据导入

XORACLE数据导⼊之SQLLOAD外部数据导⼊今天公司需要把外部⽂本的⼀些数据导⼊到数据库。

这⾥把相关步骤和注意的地⽅记录,供需要的⼈参考学习!这⾥的环境是在windows下的数据库,linux或者其他数据库同理!1、准备⼯作:创建需要导⼊数据的表结构,如果已有相关的表,此步省略!SQL>create table test2 (3 host VARCHAR2(30),4user_name VARCHAR2(30),5 ip_address VARCHAR2(15),6 pass VARCHAR2(4) default'no'not null,7 judge NUMBER default0not null,8 endtime DATE9 );表已创建。

2、编写sqlload导⼊数据的控制⽂件,这⾥测试的控制⽂件如下,可以根据⾃⼰需要添加相关的控制参数,测试的话复制保存为txt⽂件即可!LOAD DATAINFILE 'd:\data.txt'INTO TABLE testTRUNCATEfields terminated by','trailing nullcols(HOST,USER_NAME,IP_AddrESS,PASS,JUDge,endTIME)控制⽂件还有其他参数,根据⾃⼰需求调整和测试:附部分控制参数:具体⽤法以官⽅⽂档为准OPTIONS (skip=1,rows=128) -- sqlldr 命令显⽰的选项可以写到这⾥边来,skip=1 ⽤来跳过数据中的第⼀⾏LOAD DATAINFILE "users_data.csv" --指定外部数据⽂件,可以是不同格式的数据⽂件,如csv、txt都⽀持可以写多个 INFILE "another_data_file.csv" 指定多个数据⽂件truncate--操作类型,⽤ truncate table 来清除表中原有记录,根据情况⽽定是否需要清楚原有表中数据INTO TABLE users --要插⼊记录的表Fields terminated by "," --数据中每⾏记录⽤ "," 分隔Optionally enclosed by'"'--数据中每个字段⽤ '"' 框起,⽐如字段中有 "," 分隔符时trailing nullcols --表的字段没有对应的值时允许为空(virtual_column FILLER, --这是⼀个虚拟字段,⽤来跳过由 PL/SQL Developer ⽣成的第⼀列序号user_id number, --字段可以指定类型,否则认为是 CHARACTER 类型, log ⽂件中有显⽰user_name,login_times,last_login DATE "YYYY-MM-DD HH24:MI:SS" -- 指定接受⽇期的格式,相当⽤ to_date() 函数转换)insert--为缺省⽅式,在数据装载开始时要求表为空append --在表中追加新记录replace--删除旧记录(⽤ delete from table 语句),替换成新装载的记录truncate--删除旧记录(⽤ truncate table 语句),替换成新装载的记录3、创建需要导⼊的数据,注意数据格式必须和表结构严格对应,否则导⼊失败!测试数据如下:有部分数据最后字段为空,所以控制⽂件中需要加trailing nullcols 参数!ttt,SCOTT,192.168.1.111,yes,1,qq,JACK,192.168.1.20,no,1,YY,TOM,192.168.1.20,no,1,WEB1,HAHA,192.168.1.1,no,1,XXX,ROBIN,111.111.111.111,no,1,08-AUG-08DB2,LUCY,192.168.10.10,no,1,ORACLE,LILY,222.222.222.222,no,1,WORKGROUP,DENNIS,133.133.133.133,no,0,08-AUG-08DCR,CANDY,192.168.100.10,no,1,T3,FLY,192.168.10.33,no,1,T1,LINDA,192.168.10.200,no,1,08-AUG-08T2,LILEI,192.168.100.31,no,1,08-AUG-084、导⼊数据-导⼊时也有相关的参数进⾏控制附部分导⼊参数:各参数可以再命令⾏下输⼊sqlldr查看C:\Documents and Settings\Administrator>sqlldrSQL*Loader: Release 11.2.0.1.0- Production on星期三 2⽉2717:13:242013Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.⽤法: SQLLDR keyword=value [,keyword=value,...]有效的关键字:userid -- ORACLE ⽤户名/⼝令control -- 控制⽂件名log-- ⽇志⽂件名bad -- 错误⽂件名data -- 数据⽂件名discard -- 废弃⽂件名discardmax -- 允许废弃的⽂件的数⽬ (全部默认)skip -- 要跳过的逻辑记录的数⽬ (默认 0)load-- 要加载的逻辑记录的数⽬ (全部默认)errors -- 允许的错误的数⽬ (默认 50)rows -- 常规路径绑定数组中或直接路径保存数据间的⾏数(默认: 常规路径64, 所有直接路径)bindsize -- 常规路径绑定数组的⼤⼩ (以字节计) (默认 256000)silent -- 运⾏过程中隐藏消息 (标题,反馈,错误,废弃,分区)direct -- 使⽤直接路径 (默认 FALSE)parfile -- 参数⽂件: 包含参数说明的⽂件的名称parallel -- 执⾏并⾏加载 (默认 FALSE)file-- 要从以下对象中分配区的⽂件skip_unusable_indexes -- 不允许/允许使⽤⽆⽤的索引或索引分区 (默认 FALSE)skip_index_maintenance -- 没有维护索引, 将受到影响的索引标记为⽆⽤ (默认 FALSE)commit_discontinued -- 提交加载中断时已加载的⾏ (默认 FALSE)readsize -- 读取缓冲区的⼤⼩ (默认 1048576)external_table -- 使⽤外部表进⾏加载; NOT_USED, GENERATE_ONLY, EXECUTE (默认 NOT_USED)columnarrayrows -- 直接路径列数组的⾏数 (默认 5000)streamsize -- 直接路径流缓冲区的⼤⼩ (以字节计) (默认 256000)multithreading -- 在直接路径中使⽤多线程resumable -- 启⽤或禁⽤当前的可恢复会话 (默认 FALSE)resumable_name -- 有助于标识可恢复语句的⽂本字符串resumable_timeout -- RESUMABLE 的等待时间 (以秒计) (默认 7200)date_cache -- ⽇期转换⾼速缓存的⼤⼩ (以条⽬计) (默认 1000)no_index_errors -- 出现任何索引错误时中⽌加载 (默认 FALSE)如下命令:control=指定控制⽂件和路径log=导⼊⽇志⽂件保存 bad=错误信息 data=数据⽂件开始导⼊:C:\Documents and Settings\Administrator>sqlldr scott/tiger control=d:\sqlload.txt log=d:\loadlog.txt bad=d:\bad.txt data=d:\data.txtSQL*Loader: Release 11.2.0.1.0- Production on星期三 2⽉2717:06:522013Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.达到提交点-逻辑记录计数12导⼊成功后查看结果:C:\Documents and Settings\Administrator>sqlplus scott/tigerSQL*Plus: Release 11.2.0.1.0 Production on星期三 2⽉2717:07:052013Copyright (c) 1982, 2010, Oracle. All rights reserved.连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0- ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>select*from test;HOST USER_NAME IP_ADDRESS PASS JUDGE ENDTIME---------- ---------- ------------------------------ -------- ---------- --------------ttt SCOTT 192.168.1.111 yes 1qq JACK 192.168.1.20 no 1YY TOM 192.168.1.20 no 1WEB1 HAHA 192.168.1.1 no 1DB2 LUCY 192.168.10.10 no 1ORACLE LILY 222.222.222.222 no 1DCR CANDY 192.168.100.10 no 1T3 FLY 192.168.10.33 no 1已选择8⾏。

实用sql loader例子

实用sql loader例子

sql loader使用例子a)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) -----定义列对应顺序a、insert,为缺省方式,在数据装载开始时要求表为空b、append,在表中追加新记录c、replace,删除旧记录,替换成新装载的记录d、truncate,同上在DOS窗口下使用SQL*Loader命令实现数据的输入C:\>sqlldr userid=system/manager control=input.ctl默认日志文件名为:input.log默认坏记录文件为:input.bad2.还有一种方法可以把EXCEL文件另存为CSV(逗号分隔)(*.csv),控制文件就改为用逗号分隔LOAD DATAINFILE 'd:\car.csv'APPEND INTO TABLE t_car_tempFIELDS TERMINATED BY ","(phoneno,vip_car)b)在控制文件中直接导入数据1、控制文件test.ctl的内容-- The format for executing this file with SQL Loader is:-- SQLLDR control=<filename> Be sure to substitute your-- version of SQL LOADER and the filename for this file.LOAD DATAINFILE *BADFILE 'C:\Documents and Settings\Jackey\桌面\WMCOUNTRY.BAD'DISCARDFILE 'C:\Documents and Settings\Jackey\桌面\WMCOUNTRY.DSC' INSERT INTO TABLE EMCCOUNTRYFields terminated by ";" Optionally enclosed by '"'(COUNTRYID NULLIF (COUNTRYID="NULL"),COUNTRYCODE,COUNTRYNAME,CONTINENTID NULLIF (CONTINENTID="NULL"),MAPID NULLIF (MAPID="NULL"),CREATETIME DATE "MM/DD/YYYY HH24:MI:SS" NULLIF (CREATETIME="NULL"), LASTMODIFIEDTIME DATE "MM/DD/YYYY HH24:MI:SS" NULLIF (LASTMODIFIEDTIME="NULL"))BEGINDATA1;"JP";"Japan";1;9;"09/16/2004 16:31:32";NULL2;"CN";"China";1;10;"09/16/2004 16:31:32";NULL3;"IN";"India";1;11;"09/16/2004 16:31:32";NULL4;"AU";"Australia";6;12;"09/16/2004 16:31:32";NULL 5;"CA";"Canada";4;13;"09/16/2004 16:31:32";NULL 6;"US";"United States";4;14;"09/16/2004 16:31:32";NULL 7;"MX";"Mexico";4;15;"09/16/2004 16:31:32";NULL 8;"GB";"United Kingdom";3;16;"09/16/2004 16:31:32";NULL 9;"DE";"Germany";3;17;"09/16/2004 16:31:32";NULL 10;"FR";"France";3;18;"09/16/2004 16:31:32";NULL 11;"IT";"Italy";3;19;"09/16/2004 16:31:32";NULL 12;"ES";"Spain";3;20;"09/16/2004 16:31:32";NULL 13;"FI";"Finland";3;21;"09/16/2004 16:31:32";NULL 14;"SE";"Sweden";3;22;"09/16/2004 16:31:32";NULL 15;"IE";"Ireland";3;23;"09/16/2004 16:31:32";NULL 16;"NL";"Netherlands";3;24;"09/16/2004 16:31:32";NULL 17;"DK";"Denmark";3;25;"09/16/2004 16:31:32";NULL 18;"BR";"Brazil";5;85;"09/30/2004 11:25:43";NULL 19;"KR";"Korea, Republic of";1;88;"09/30/2004 11:25:43";NULL 20;"NZ";"New Zealand";6;89;"09/30/2004 11:25:43";NULL 21;"BE";"Belgium";3;79;"09/30/2004 11:25:43";NULL 22;"AT";"Austria";3;78;"09/30/2004 11:25:43";NULL 23;"NO";"Norway";3;82;"09/30/2004 11:25:43";NULL 24;"LU";"Luxembourg";3;81;"09/30/2004 11:25:43";NULL 25;"PT";"Portugal";3;83;"09/30/2004 11:25:43";NULL 26;"GR";"Greece";3;80;"09/30/2004 11:25:43";NULL 27;"IL";"Israel";1;86;"09/30/2004 11:25:43";NULL 28;"CH";"Switzerland";3;84;"09/30/2004 11:25:43";NULL 29;"A1";"Anonymous Proxy";0;0;"09/30/2004 11:25:43";NULL 30;"A2";"Satellite Provider";0;0;"09/30/2004 11:25:43";NULL 31;"AD";"Andorra";3;0;"09/30/2004 11:25:43";NULL 32;"AE";"United Arab Emirates";1;0;"09/30/2004 11:25:43";NULL 33;"AF";"Afghanistan";1;0;"09/30/2004 11:25:43";NULL34;"AG";"Antigua and Barbuda";7;0;"09/30/2004 11:25:43";NULL 35;"AI";"Anguilla";7;0;"09/30/2004 11:25:43";NULL 36;"AL";"Albania";3;0;"09/30/2004 11:25:43";NULL 37;"AM";"Armenia";3;0;"09/30/2004 11:25:43";NULL 38;"AN";"Netherlands Antilles";3;0;"09/30/2004 11:25:43";NULL 39;"AO";"Angola";2;0;"09/30/2004 11:25:43";NULL 40;"AP";"Asia/Pacific Region";2;0;"09/30/2004 11:25:43";NULL 41;"AQ";"Antarctica";8;0;"09/30/2004 11:25:43";NULL 42;"AR";"Argentina";5;0;"09/30/2004 11:25:43";NULL 43;"AS";"American Samoa";6;0;"09/30/2004 11:25:43";NULL 44;"AW";"Aruba";5;0;"09/30/2004 11:25:43";NULL 45;"AZ";"Azerbaijan";1;0;"09/30/2004 11:25:43";NULL 46;"BA";"Bosnia and Herzegovina";3;0;"09/30/2004 11:25:43";NULL 47;"BB";"Barbados";5;0;"09/30/2004 11:25:43";NULL 48;"BD";"Bangladesh";1;0;"09/30/2004 11:25:43";NULL 49;"BF";"Burkina Faso";2;0;"09/30/2004 11:25:43";NULL 50;"BG";"Bulgaria";3;0;"09/30/2004 11:25:43";NULL 51;"BH";"Bahrain";1;0;"09/30/2004 11:25:43";NULL 52;"BI";"Burundi";2;0;"09/30/2004 11:25:43";NULL 53;"BJ";"Benin";2;0;"09/30/2004 11:25:43";NULL 54;"BM";"Bermuda";4;0;"09/30/2004 11:25:43";NULL 55;"BN";"Brunei Darussalam";1;0;"09/30/2004 11:25:43";NULL 56;"BO";"Bolivia";5;0;"09/30/2004 11:25:43";NULL 57;"BS";"Bahamas";7;0;"09/30/2004 11:25:43";NULL 58;"BT";"Bhutan";1;0;"09/30/2004 11:25:43";NULL 59;"BV";"Bouvet Island";5;0;"09/30/2004 11:25:43";NULL 60;"BW";"Botswana";2;0;"09/30/2004 11:25:43";NULL 61;"BY";"Belarus";3;0;"09/30/2004 11:25:43";NULLSQL Loader用法在Window系统下,SQL Loader的命令为SQLLDR,在UNIX下一般为sqlldr/sqlload。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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。

相关文档
最新文档