Csv格式大数据导入oracle方法
- 格式:doc
- 大小:202.50 KB
- 文档页数:10
CSV文件的内容并导入到数据库中功能:读取CSV文件的内容并导入到数据库中环境:Access2003 语言:VBA(对于使用VB6.0同样适用)数据库:D:\db1.mdb数据表:testuserId 数值型userName 文本型CSV文件:D:\test.csv (使用Excel打开)编号姓名123 王五456 李"“四789 张'三注意,在实际处理CSV文件前,程序开发者必须了解CSV文件的真实结构。
为了说明在处理CSV文件时可能遇到的特殊情况,用于测试的CSV文件的最后两行的“姓名”列均插入了特殊字符。
由于在显示CSV文件内容时,Excel已经对CSV文件进行了处理,因此,上面使用Excel所看到的内容并不是CSV的真实内容。
如果使用文本编辑器打开,可以看到真实的内容为:----------编号, 姓名123, 王五456, "李""“四"789, 张'三----------之所以出现这样的内容,是因为我们通常使用Excel编辑CSV文件,然后使用另存为命令保存为CSV文件。
这一过程中,Excel会隐蔽地进行如下处理:1CSV文件将Excel的同一行中不同单元格的内容使用,(半角逗号分隔开)2 当内容中出现半角双引号时会自动被转义为两个双引号,即"";同时内容整体的两端自动被双引号引起来。
例如:李"“四-> "李""“四"了解了数据表和CSV文件的结构,下面就可以编写代码了。
------------------------------------------------------------1. Option Compare Binary 声明作用:声明当前VB环境中字符串的比较方式这里的Binary 声明当前VB环境中的字符串依照其在内存中的字节码来进行比较如果你使用的是普通VB6.0环境,默认的字符串比较就是依照字节码比较但是,如果你使用的是Access VBA进行开发,就要特别注意了。
将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 最常使用的工具。
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、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使用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。
功能:读取CSV文件的内容并导入到数据库中环境:Access2003 语言:VBA(对于使用VB6.0同样适用)数据库:D:\db1.mdb数据表:testuserId 数值型userName 文本型CSV文件:D:\test.csv (使用Excel打开)编号姓名123 王五456 李"“四789 张'三注意,在实际处理CSV文件前,程序开发者必须了解CSV文件的真实结构。
为了说明在处理CSV文件时可能遇到的特殊情况,用于测试的CSV文件的最后两行的“姓名”列均插入了特殊字符。
由于在显示CSV文件内容时,Excel已经对CSV文件进行了处理,因此,上面使用Excel所看到的内容并不是CSV的真实内容。
如果使用文本编辑器打开,可以看到真实的内容为:----------编号, 姓名123, 王五456, "李""“四"789, 张'三----------之所以出现这样的内容,是因为我们通常使用Excel编辑CSV文件,然后使用另存为命令保存为CSV文件。
这一过程中,Excel会隐蔽地进行如下处理:1CSV文件将Excel的同一行中不同单元格的内容使用,(半角逗号分隔开)2 当内容中出现半角双引号时会自动被转义为两个双引号,即"";同时内容整体的两端自动被双引号引起来。
例如:李"“四-> "李""“四"了解了数据表和CSV文件的结构,下面就可以编写代码了。
------------------------------------------------------------1. Option Compare Binary 声明作用:声明当前VB环境中字符串的比较方式这里的Binary 声明当前VB环境中的字符串依照其在内存中的字节码来进行比较如果你使用的是普通VB6.0环境,默认的字符串比较就是依照字节码比较但是,如果你使用的是Access VBA进行开发,就要特别注意了。
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存储程序单元,比如触发器,存储过程,函数和程序包等集成开发环境。
将Excel导入Oracle中1.录入excel测试表格,test.xls。
2.另存为.csv格式3.创建sql*loader控制文件test.ctl,内容如下:Load dataInfile 'c:\test.csv'insert Into table test Fields terminated by','(column1,column2,column3,column4,column5)需要将数据文件拷贝到对应位置4.到数据库中建立对应的测试表testcreate table test (column1 Varchar2(10),column2 Varchar2(10),column3 Varchar2(10),column4 Varchar2(10),column5 Varchar2(10))5.执行导入命令Sqlldruserid = system/manager control='C:\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)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) --字段名称列表。
关于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格式输出,效果如下图:方法三:最悲剧的方法,之所以称为悲剧,是因为这个方法其实很简单,但是你可能没有注意。
使用toad将csv文件导入oracle每次项目开始启动之后,就面临着一系列基础数据入库的问题,toad有一种可以将外部文件导入oracle的工具import,与大家一起分享。
以“个人所得税申报数据”为例一一讲解。
入库步骤为:在TOAD登录界面中输入正确的user和password,选择正确的database; 登录数据库服务器。
界面如下:点击即可登录。
一、点击菜单栏中的database,选择其中的import,里面有两个选项:source files 和table data,此处我们选择table data。
二、出现以下界面,选择schema、对象类型、对象名称和提交方式:Schema选择blts,对象类型就如tables,对象名称就如EXTERN_PERSONAL_TAX;一般选择所有记录完成后提交,这样保持数据库的一致性。
三、将上面的四个选项选择后,按钮show data可以使用,如下所示:点击show data,就会显示出EXTERN_PERSONAL_TAX中的数据。
这里重点讲一下的使用,点击该按钮之后,你会发现以下界面:这里选择文件的格式txt然后点击next,出现以下界面:在此处选择待导入的数据文件,选择文件来源,默认是ANSI(windows),点按钮:在弹出界面中选择文件类型.CSV点如下界面,选择以“逗号”作为字段间的分割符号:然后点击next。
修改first row为2 。
注意first row 中的数字代表待导入*.csv 文件中的数据起始行号。
点击next出现以下界面:在这里需要将外部文件的列的说明一下,以便与数据库中的字段相对应起来,如果顺序与数据库一致可以采用automap,不一致需要修改的时候点击每列后面的符号,然后选中相应的列即可。
界面如下:数据库Extern_personal_tax表结构如下:个人所得税申报数据表(Extern_personal_tax)(registerno VARCHAR2(50BYTE), // 税务登记证号declarey VARCHAR2(4BYTE), // 申报年份relatephone VARCHAR2(50BYTE), //联系电话allpeople NUMBER(38), //本单位总人数 alltaxpayer NUMBER(38), //本单位纳税人数 incomeall NUMBER(18,2), //收入总额taxnum NUMBER(18,2), //税额declarem VARCHAR2(2BYTE), // 申报所属月份 JSJDM VARCHAR2(20BYTE) // 计算机代码)然后一路点击next即可。
将后缀是.csv⽂件导⼊数据库(两种⽅法)第⼀种⽅法是提供指定路径导⼊(filePath )/*** 读取csv⽂件,批量插⼊到数据库中*/// @PostMapping("/sampleInportCsv")public AjaxResult importCsv(@RequestParam("name") String name,@RequestParam("multipartFile") MultipartFile file){String filePath = uploadToCsv+name;if (null == file) {return AjaxResult.error("上传⽂件为空");}// String filePath = "D:/新建⽂件夹/新建⽂件夹新建⽂件夹新建⽂件夹/Exp.csv";try {// 创建CSV读对象CsvReader csvReader = new CsvReader(filePath, ',', Charset.forName("GBK"));// 读表头csvReader.readHeaders();BizLisResult bizLisResult = new BizLisResult();while (csvReader.readRecord()){// 读⼀整⾏System.out.println(csvReader.getRawRecord());String[] readRaw = csvReader.getRawRecord().split(",");if (readRaw.length == 0){break;}bizLisResult.setOrganizationId(Long.parseLong(readRaw[1]));bizLisResult.setSampleNo(readRaw[2]);bizLisResult.setTestNo(readRaw[4]);bizLisResult.setTestName(readRaw[5]);bizLisResult.setSampleTypeCode(readRaw[6]);bizLisResult.setSampleTypeName(readRaw[7]);bizLisResult.setTestResult(readRaw[8]);// 读这⾏的某⼀列// System.out.println(csvReader.get("Link"));("仪器传值⼊参"+bizLisResult);调⽤接⼝处理数据不⽤可以删掉// 对仪器传回数据进⾏处理bizLisResultService.uploadResult(bizLisResult);同上句// 写⼊结果信息表if (bizLisResult.getTestNo() != null) {bizLisResultService.insertYQ(bizLisResult);同上句}else {continue;}// bizLisResultService.insertBizLisResult(bizLisResult);}} catch (IOException e) {e.printStackTrace();}// List<BizLisResult> list = bizLisResultService.selectBizLisResultList(bizLisResult);// List<BizLisSample> list = bizLisSampleService.getCsvFileContent(file,groupId,itemIds);// return toAjax(bizLisSampleService.excelSampleMore(list));return AjaxResult.success("ok!");}第⼆种是根据前端传来的 MultipartFile 来写⼊数据库@PostMapping("/sampleInportCsv")public AjaxResult importCsv2(@RequestParam("name") String name,@RequestParam("multipartFile") MultipartFile multipartFile) {BufferedReader reader= null;try {reader = new BufferedReader(new InputStreamReader( multipartFile.getInputStream(),"GBK"));reader.readLine();//第⼀⾏信息,为标题信息,不⽤,如果需要,注释掉} catch (IOException e) {e.printStackTrace();}String line = null;BizLisResult bizLisResult = new BizLisResult();try {while((line=reader.readLine())!=null){// 读⼀整⾏System.out.println(line);String[] readRaw = line.split(",");if (readRaw.length == 0){break;}bizLisResult.setOrganizationId(Long.parseLong(readRaw[1]));bizLisResult.setSampleNo(readRaw[2]);bizLisResult.setTestNo(readRaw[4]);bizLisResult.setTestName(readRaw[5]);bizLisResult.setSampleTypeCode(readRaw[6]);bizLisResult.setSampleTypeName(readRaw[7]);bizLisResult.setTestResult(readRaw[8]);("仪器传值⼊参"+bizLisResult);调⽤接⼝处理数据,不⽤就删了// 对仪器传回数据进⾏处理bizLisResultService.uploadResult(bizLisResult);同上句// 写⼊结果信息表if (bizLisResult.getTestNo() != null) {bizLisResultService.insertYQ(bizLisResult);同上句}else {continue;}}} catch (IOException e) {e.printStackTrace();}return AjaxResult.success("ok");}。
一、结构化文本文件入库常见非结构化数据格式如下:1.CSV文件/TXT文件入库以上文件统一采用KETTLE数据抽取工具进行入库,如下图说明:1.利用大文本编辑工具打开数据(超大文本文件忽略此步骤),点击【视图】中【显示空格/制表符】可准确定位数据分隔符。
2.选择要导入的文件。
3.内容设置文件格式及分隔符。
根据第一步填写分隔若数据起始行不在第一行则根据实际修改,若没有字段名则去掉头部后面的√格式固定选择mixed可有效避免格式引起的错误编码格式根据数据预览情况进行修改4.直接点击获取字段即可,建议将类型全部设置为string确保顺利入库,点击下方的预览记录查看数据正确性。
注意1:较大文件直接获取字段,通过获取到的数据判断数据分隔符后,修改分隔符重新获取即可注意2:无字段名数据可自定义字段名后预览数据,确定自定义字段个数不少于文件数据列数5.定义文件来源(可忽略),该步骤可将文件名称、文件路径等信息写入到目标表中。
(通用)6.配置目标表,点击【新建】按钮。
数据库服务IP数据库SID7.在目标表已存在的情况下可直接将表名称填入目标表。
8.若目标表不存在可先定义好表名称并填入目标表后,点击下方的【sql】按钮,生成建表语句后,点击【执行】按钮,自动建表。
9.数据映射抽取(通用)目标表建成后配置字段映射以及定义错误输出。
定义错误数据文件路径及名称10.保存,运行完成导入。
注意1:当源字段与目标字段不一致时(如:姓名-名称),需勾选下方标注地方确保转换正常运行。
2.XLS/XLSX文件入库1.选择XLS/XLSX文件。
2.获取XLS/XLSX文件SHEET页,即如果存在多个SHEET页数据,可以自定义选择导入。
标注处可定义该文件的起始行,针对标题做了合并单元格操作的XLS文件有很大用处。
3.获取XLS/XLSX文件中字段列的信息,可以根据导入需求进行自定义处理,在导入过程中对每个字段值的前后空格、精度以及类型进行配置处理。
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数据库。
csv 评价与建议CSV 评价与建议1. 什么是CSV?CSV是一种常用的数据格式,全称为“Comma Separated Values”,即逗号分隔值。
它是通过使用逗号将每个数据字段分隔开来表示的数据文件,广泛应用于数据交换和存储领域。
2. CSV的优点•简单明了:CSV文件使用简单的纯文本格式,易于生成和阅读,不依赖特定的软件。
•跨平台兼容:CSV文件可以在各种操作系统和软件之间进行交换和共享,具有很好的跨平台兼容性。
•空间占用小:CSV文件体积相对较小,可以有效地利用存储空间。
•支持大数据量:CSV文件支持处理大规模的数据集,适用于处理大数据问题。
3. CSV的不足之处•不支持复杂的数据结构:CSV文件主要适用于简单的表格数据表示,不支持复杂的数据结构和关系数据库的高级功能。
•不支持元数据:CSV文件中只包含数据值,没有提供额外的元数据信息,如列名、数据类型等,可能导致数据解析和处理过程中的困惑和错误。
•字段值限制:由于CSV文件使用逗号作为字段分隔符,当数据中包含逗号时需要进行转义或引号包裹,增加了数据处理的复杂性。
4. 补充措施与建议•添加列名:为CSV文件添加列名,可以提供更清晰的数据结构表示,并方便后续的数据处理和分析。
•利用转义字符:当数据中包含逗号时,可以通过使用转义字符(如)或引号将字段值包裹起来,避免分隔符混淆。
•结合数据字典:使用数据字典等额外的元数据信息,可以更好地解析和处理CSV文件中的数据。
•数据验证与清洗:在处理CSV文件之前,进行数据验证和清洗,以确保数据的完整性和准确性。
•考虑使用其他格式:对于需要处理复杂数据结构或包含大量元数据的情况,可以考虑使用XML、JSON等其他更适合的数据格式。
以上是关于CSV评价与建议的一些观点和建议,希望能对你在使用CSV文件时有所帮助!5. CSV工具与库推荐•Pandas: Pandas是一个Python数据分析工具库,提供了丰富的CSV文件读写和处理功能,适用于处理大规模、高维度的数据集。
Csv格式数据导入oracle方法
SQLLOAD命令导入oracle数据库表结构:
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
当前文件存放路径:>sqlldruserid=用户名/密码[数据库字符串]control=控制文件sqlldr userid='sys/admin as sysdba' control=e:\oracle\data\control.ctl
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)
备注:
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):表结构
--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”已经导入到数据库中。