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、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以確保上傳檔案確實刪除避免無用檔案上傳造成伺服器負擔。
oracle 逗号分隔拆解

Oracle 逗号分隔拆解1. 什么是逗号分隔拆解?逗号分隔拆解是一种将字符串按照逗号进行分割的操作。
在Oracle数据库中,逗号分隔拆解常用于处理包含多个值的字符串,例如将一列包含多个值的字符串拆解成多行数据。
2. 逗号分隔拆解的应用场景逗号分隔拆解在实际应用中有很多场景,以下是一些常见的应用场景:•处理包含多个值的字符串:当数据库中的某一列包含了多个值,并且这些值之间用逗号进行分隔时,我们可以使用逗号分隔拆解将这些值拆解成多行数据,方便后续的数据处理和分析。
•解析CSV文件:CSV文件是一种常见的数据交换格式,其中的数据字段通常以逗号进行分隔。
当需要将CSV文件导入到Oracle数据库中时,我们可以使用逗号分隔拆解将每一行的字段拆解成多列数据。
•字符串处理:在一些业务逻辑中,我们可能需要对包含多个值的字符串进行处理,例如计算字符串中包含的元素个数、查找字符串中的某个值等等。
逗号分隔拆解可以帮助我们将字符串拆解成多个值,从而方便进行后续的处理。
3. 使用逗号分隔拆解的方法在Oracle数据库中,我们可以使用多种方法进行逗号分隔拆解,下面介绍两种常用的方法:使用正则表达式和使用内置函数。
3.1 使用正则表达式使用正则表达式可以很方便地实现逗号分隔拆解。
Oracle数据库提供了REGEXP_SUBSTR函数用于正则表达式的匹配和提取。
下面是一个示例,演示如何使用正则表达式进行逗号分隔拆解:SELECT REGEXP_SUBSTR('A,B,C,D', '[^,]+', 1, LEVEL) AS valueFROM dualCONNECT BY REGEXP_SUBSTR('A,B,C,D', '[^,]+', 1, LEVEL) IS NOT NULL;执行以上SQL语句,将会输出如下结果:VALUE-----ABCD在上述示例中,我们使用了[^,]+作为正则表达式,它表示匹配除逗号以外的任意字符。
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大数据操作方法第一步:按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用法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有四种方法,结合网上的写写: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所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Csv格式数据导入oracle方法
SQLLOAD命令导入oracle数据库表结构:
create table
(
deptno number(2),
dname varchar2(14),
sloc varchar2(13)
)
'文件中的内容:
10,Sales,Virginia
20,"Accou,nting",Virginia
30,Consulting,Virginia
40,Finance,Virginia
当前文件存放路径:>sqlldruserid=用户名/密码[@数据库字符串]control=控制文件sqlldr userid='sys/admin as sysdba' control=e:\oracle\data\
控制文件中的内容
load data
infile 'E:\oracle\data\'
append into table
fields 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中先建立一张与导入表数据结构相同的表。
需要导入的数据集为“昌吉换机用户.csv”,共3434行数据,其部分内容如图1所示。
图1 昌吉换机用户.csv的部分内容
在oracle中建立表CJ_HJ,其字段应与“昌吉换机用户.csv”的字段名完成一致。
输入
CREATE TABLE CJ_HJ(
ACC_NBR NUMBER(11),
PRICE_FLAG VARCHAR(30),
REG_TENURE VARCHAR(30),
换机偏爱终端排名1VARCHAR(30),
是否网龄计划1VARCHAR(30),
换机偏爱终端排名2VARCHAR(30),
是否网龄计划2VARCHAR(30),
换机偏爱终端排名3VARCHAR(30),
是否网龄计划3VARCHAR(30),
LATN_NAME VARCHAR(30)
)
1、打开PL/SQL Developer,选择工具栏中的”Tools”
2、选择Tools下的TextImporter,如下:
3、点击open data file图标,导入文件,具体如下:
4、选择导入的目标表,具体如下:
5、文件中的列和表中的段核对上,具体如下:
6、最后点击导入按钮,将数据导入到oracle数据表中。
可以看到,“昌吉换机用户.csv”已经导入到数据库中。