Csv格式数据导入oracle方法

合集下载

csv格式的数据导入到oracle数据库

csv格式的数据导入到oracle数据库

csv格式的数据导⼊到oracle数据库系统环境:centos6.5oracle版本:oracle11gr2由于客户导出的格式是csv格式的,并且数据量⽐较⼤,两千多万,使⽤plsql不太合适。

考虑使⽤oracle客户端⼯具sqlldr。

如果提供的有表结构最好,直接导⼊创建表就⾏了。

如果没有提供,可以先使⽤wps打开csv⽂件,根据内容⾃⼰去创建表结构。

使⽤sqlldr有⼏种导⼊⽅式,这⾥使⽤direct直接路径加并⾏的模式。

1. 先在数据库创建好空表。

2. 创建ctl⽂件options(skip=1,columnarrayrows=20971520,ROWS=10000,READSIZE=20971520,ERRORS=999999999)load datainfile '/ora11/tmp/zz.csv'append into table "*****_RECORD"fields terminated by ','Optionally enclosed by '"'(id,record_organ_code,record_organ_name)1⾏是导⼊参数配置,已经是⽀持⼤量数据导⼊的参数⽅案。

第3⾏infile指定导⼊的⽂件是USER_INFO.csv;第4⾏into table前⾯的insert表⽰导⼊⽅式:insert :默认⽅式,在导⼊记录前要求表为空;append :在表中追加新导⼊的记录;replace :删除旧记录(等价delete from table语句),替换成新导⼊的记录;truncate:删除旧记录(等价truncate table语句),替换成新导⼊的记录;into table后⾯指定导⼊数据库表USER_INFO,且表名必须⼤写;第5⾏指定每⼀⾏的字段是以逗号(,)分隔;第6⾏指定字段是⽤两个分号(')包围起来的,可选的;最后⼀⾏对应导⼊的字段,注意如果导⼊的是时间字段,需要指明时间转换的格式(在这⾥有坑,要注意格式。

使用CSV导入Oracle Form..

使用CSV导入Oracle Form..

使用CSV、TSV或TXT檔案上傳至FORM方法:我想在從事Oracle EBS客製的各位應該多少都有碰到User提出是否可以用EXCEL匯入資料。

當然除了Oracle Web ADI功能外,另外就是使用下述方法搭配標準檔案上傳到Server在讀取組成二維陣列資料,塞到對應的畫面欄位。

因此我在網路上找到了一些資料,稍作修改做了一個共用程式給各位參考!!一、步驟:1.先將FILE_UPLOAD、LOAD_FILE與CLEAR_FND_LOB建立至FORM的程式單元中。

<備註一>2.新增按鈕觸發執行。

執行內容範例如下:3.新增參數:FLE_FILE_NAME、FLE_GFM_ID紀錄上傳檔案ID與名稱。

4.即可執行將檔案上傳至FORM。

(1)按下執行按鈕則會跳出網頁視窗選取欲上傳之檔案。

(2)選好上傳檔案後點選Submit上傳,則會顯示是否成功。

(3)成功後關閉網頁。

點選確認已上傳則開始將檔案複製到FORM中。

(4)導入過程中,在畫面左下角會顯示導入內容且畫面也會持續更新內容。

(5)完全執行完畢後會顯示導入筆數。

二、注意事項:1.上傳檔案只能是.TXT或.CSV或.TSV且編碼必須為UTF8或ZHT16BIG5否則會失敗。

2.檔案抬頭欄位必須保留且名稱必須與複製BLOCK.ITEM名稱相同。

(若欲不同則需修改LOAD_FILE 判斷抬頭名稱是否與設定欄位相同)3.每一列資料皆要設定欄位區隔與換行符號。

如下圖欄位區隔為Tab換行區隔為;(可自訂但決定後不可改變)4.注意若有”上引號時,用EXCEL另存CSV或TSV或TXT檔案時判斷會有問題。

需先將”改為其他符號另存新檔後在取替代回”。

5.此公用程式只判斷欄位抬頭欄位名稱是否與設定相同未判斷各欄位資料內容是否符合格式做卡關。

若需要可自行在LOAD_FILE中自行加入。

可在下圖copy前加入卡關!!6.在導入之BLOCK Trigger(ON-ERROR)或關閉FORM時,最好再次呼叫CLEAR_FND_LOB以確保上傳檔案確實刪除避免無用檔案上傳造成伺服器負擔。

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

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

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 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 在加载数据时会生成一个日志文件,用于记录加载过程中的错误和警告信息。

通过查看日志文件,可以了解加载过程中是否发生了错误,并可以根据其提供的信息进行调试和修复。

excel导入ORACLE的四个方法

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存储程序单元,比如触发器,存储过程,函数和程序包等集成开发环境。

Txt文件导入oracle数据库方法

Txt文件导入oracle数据库方法
在实际工作中,经常要从数据库中导出数据或往数据库中导入数据。

当遇到数据量较大时,就需要导入文本格式的数据,一般导入的数据格式有txt,csv等。

以下主要介绍我在实际工作中向oracle中导入数据的两个实例。

1.使用PL/SQL Developer的Text Importer (1)从菜单中选取Text Importer功能。

Tool——>Text Importer(如图1所示)
(2)点击“Text Importer”后显示主窗口(如图2)
3)设置将数据文件导入到哪个数据库中的哪个表中,如图3所示。

(4)设置完成后,点击“Import”按钮,数据开始导入直到数据全部导入到数据库中。

2.使用Power Builder 将txt文件导入到数据库中。

(1)先建表结构
例如:Create Table Temp (subsid varchar(20) not null primary key,subsname(50));如图4所示。

在这里需要说明的是:在建立表的过程中,必须设置主键,否着不允许导入数据。

(2)检索刚建的临时表temp select * from temp
(3)点击“Rows”下的“Import”选项,弹出文件对话框,选择你要加载的数据文件,点击“确定”。

如图5所示。

Csv格式数据导入oracle方法

Csv格式数据导入oracle方法SQLLOAD命令导入oracle数据库表结构:create table(deptno number(2),dname varchar2(14),sloc varchar2(13))'文件中的内容:10,Sales,Virginia20,"Accou,nting",Virginia30,Consulting,Virginia40,Finance,Virginia当前文件存放路径:>sqlldruserid=用户名/密码[@数据库字符串]control=控制文件sqlldr userid='sys/admin as sysdba' control=e:\oracle\data\控制文件中的内容load datainfile 'E:\oracle\data\'append into tablefields terminated by ','optionally enclosed by '"'(deptno,dname,sloc)备注:loaddata:控制文件标识infile'E:\oracle\data\':需要输入的数据文件名appendinto table :向表中进行数据操作fieldsterminated by ',':字段终止符 X'09'表示TAB键 csv文件用,表示,txt文件两者都可optionallyenclosed by '"' :字段取值符比如csv文件有一个字段包含逗号,但是解析的时候又要按逗号解析,这个时候就要加上这个值(deptno,dname,sloc):表结构--insert为缺省方式,在数据装载的时候要求表为空,否则退回--append向表中添加新纪录--replace删除旧纪录,替换成新装载的纪录--truncat同上PL/SQL实现CSV数据导入到ORACLE在将csv文件导入到oracle数据库前,需要在oracle中先建立一张与导入表数据结构相同的表。

oracle 逗号分隔 转译

oracle 逗号分隔转译Oracle是一种关系型数据库管理系统(RDBMS),它是由Oracle公司开发的。

Oracle数据库使用SQL语言进行数据管理和查询。

逗号分隔(CSV)是一种常见的文件格式,用于存储和传输数据。

转译是将一个字符序列转换为另一个字符序列的过程。

一、Oracle数据库1.1 什么是关系型数据库管理系统?关系型数据库管理系统(RDBMS)是一种用于管理和组织数据的软件系统。

它使用关系模型来存储和操作数据。

在关系模型中,数据被组织成表格,每个表格包含多个行和列。

1.2 Oracle数据库的特点Oracle数据库具有以下特点:- 高可用性:提供了多种高可用性解决方案,如实时备份、故障转移等。

- 高性能:支持并发处理、分布式处理等技术,可以满足大规模应用场景。

- 安全性:提供了多层次的安全控制机制,可以保护用户数据不被非法访问。

- 可扩展性:支持水平扩展和垂直扩展两种方式,可以根据业务需求快速扩展数据库规模。

- 易于管理:提供了丰富的工具和接口,可以方便地对数据库进行监控、维护和管理。

1.3 Oracle数据库的应用场景Oracle数据库广泛应用于大型企业、金融机构、电信运营商等领域。

它可以用于存储和处理各种类型的数据,如交易数据、客户信息、设备数据等。

Oracle数据库还可以作为企业级应用系统的后台数据库,如ERP、CRM等。

二、逗号分隔(CSV)2.1 什么是逗号分隔?逗号分隔(CSV)是一种常见的文件格式,用于存储和传输数据。

在CSV文件中,每一行表示一个记录,每个字段之间用逗号进行分隔。

2.2 CSV文件的特点CSV文件具有以下特点:- 简单易读:使用文本格式存储数据,可以直接在文本编辑器中查看和编辑。

- 跨平台:CSV文件可以在不同操作系统和软件之间进行互通。

- 易于处理:由于CSV文件采用了简单的文本格式,因此可以方便地使用各种编程语言进行处理。

- 空间效率高:相对于其他二进制格式,CSV文件占用空间较小。

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。

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

)
1、打开 PL/SQL Developer,选择工具栏中的”Tools” 2、选择 Tools 下的 TextImporter,如下:
3、点击 open data file 图标,导入文件,具体如下:
4、选择导入的目标表,具体如下: 5、文件中的列和表中的段核对上,具体如下:
6、最后点击导入按钮,将数据导入到 oracle 数据表中。
--insert 为缺省方式,在数据装载的时候要求表为空,否则退回 --append 向表中添加新纪录 --replace 删除旧纪录,替换成新装载的纪录 --truncat 同上
PL/SQL 实现 CSV 数据导入到 ORACLE
在将 csv 文件导入到 oracle 数据库前,需要在 oracle 中先建立一张与导入表数据结构相同的表。 需要导入的数据集为“昌吉换机用户.csv”,共 3434 行数据,其部分内容如图 1 所示。
control.ctl 控制文件中的内容 load data infile 'E:\oracle\data\dept_test.csv' append into table scott.dept_test fields terminated by ',' optionally enclosed by '"' (deptno,dname,sloc)
Csv 格式数据导入 oracle 方法
SQLLOAD 命令导入 oracle 数据库
当前文件存放路径:>sqlldruserid=用户名/密码[@数据库字符串]control=控制文件 sqlldr userid='sys/admin as sysdba' control=e:\oraclቤተ መጻሕፍቲ ባይዱ\data\control.ctl
备注:
loaddata:控制文件标识 infile'E:\oracle\data\dept_test.csv':需要输入的数据文件名 appendinto table scott.dept_test:向表中进行数据操作 fieldsterminated by ',':字段终止符 X'09'表示 TAB 键 csv 文件用,表示,txt 文件两者都可 optionallyenclosed by '"' :字段取值符 比如 csv 文件有一个字段包含逗号,但是解析的时候又要按逗号解析,这个时候就要加上这个值 (deptno,dname,sloc):表结构
图 1 昌吉换机用户.csv 的部分内容
在 oracle 中建立表 CJ_HJ,其字段应与“昌吉换机用户.csv”的字段名完成一致。 输入
CREATE TABLE CJ_HJ(
ACC_NBR
NUMBER(11),
PRICE_FLAG
VARCHAR(30),
REG_TENURE
VARCHAR(30),
表结构:
create table scott.dept_test ( deptno number(2), dname varchar2(14), sloc varchar2(13) )
dept_test.csv'文件中的内容:
10,Sales,Virginia 20,"Accou,nting",Virginia 30,Consulting,Virginia 40,Finance,Virginia
可以看到,“昌吉换机用户.csv”已经导入到数据库中。
换机偏爱终端排名1 是否网龄计划1 换机偏爱终端排名2 是否网龄计划2 换机偏爱终端排名3 是否网龄计划3
VARCHAR(30), VARCHAR(30), VARCHAR(30), VARCHAR(30), VARCHAR(30), VARCHAR(30),
LATN_NAME
VARCHAR(30)
相关文档
最新文档