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所示。
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文件占用空间较小。
sqlload基本使用方法
朋友打电话问我如何利用sql讲mysl导出的文本数据加载到oracle数据库,电话说了他也没听清楚,我做了如下实验,给他做例子:一、加载txt文本1.在D盘建立sqlldr的控制文件,111.ctl 内容如下LOAD DATAINFILE 'd:\111.txt'INTO TABLE SALGRADE_TESTTRUNCATEFIELDS TERMINATED BY ','(GRADE,LOSAL,HISAL)2.在D盘建立sqlldr的数据文件111.txt,内容如下格式1,700,12002,1201,14003,1401,20004,2001,30005,3001,99993.在CMD的命令行模式执行加载操作sqlldr scott/tiger control=d:\111.ctl log=d:\111.log bad=d:\111.baSQL*Loader: Release 11.2.0.1.0 - Production on 星期三 9月 14 10:58:35 2011 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved达到提交点 - 逻辑记录计数 4达到提交点 - 逻辑记录计数 54.登录数据库验证加载结果D:\window\server\mysql-5.1.51\bin>sqlplus scott/tiger连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from SALGRADE_TEST;GRADE LOSAL HISAL---------- ---------- ----------1 700 12002 1201 14003 1401 20004 2001 30005 3001 99995.导入成功之后,查看111.log6.注释LOAD DATA 控制文件标识INFILE 'd:\111.txt'为数据文件地址和名称,此处如果是INFILE *表示要加载的数据就在这个控制文件里,也就是BEGINDATA后面跟的内容。
Csv格式大数据导入oracle方法
Csv格式数据导入oracle方法SQLLOAD命令导入oracle数据库表结构:create table scott.dept_test(deptno number(2),dname varchar2(14),sloc varchar2(13))dept_test.csv'文件中的容:10,Sales,Virginia20,"Accou,nting",Virginia30,Consulting,Virginia40,Finance,Virginia当前文件存放路径:>sqlldruserid=用户名/密码[数据库字符串]control=控制文件sqlldr userid='sys/admin as sysdba' control=e:\oracle\data\control.ctlcontrol.ctl控制文件中的容load datainfile 'E:\oracle\data\dept_test.csv'append into table scott.dept_testfields 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中先建立一与导入表数据结构相同的表。
sql导入数据案例
sql导入数据案例一、导入数据的作用和目的在使用SQL数据库管理系统时,导入数据是一项非常重要的操作。
通过导入数据,可以将外部的数据源导入到数据库中,使得数据可以被数据库管理系统进行统一管理和查询。
导入数据可以帮助用户快速构建数据库,并且可以方便地将已有的数据导入到数据库中,避免了手动逐条插入数据的繁琐过程。
二、导入数据的方法和工具1. 使用LOAD DATA INFILE命令导入数据LOAD DATA INFILE命令是MySQL数据库中用于导入数据的一种常用方法。
该命令可以从外部文件中读取数据,并将数据导入到指定的数据库表中。
通过指定文件路径、文件格式、字段分隔符等参数,可以将外部文件中的数据正确地导入到数据库中。
2. 使用BULK INSERT命令导入数据BULK INSERT命令是SQL Server数据库中用于导入数据的一种方法。
该命令可以从外部文件中读取数据,并将数据导入到指定的数据库表中。
通过指定文件路径、文件格式、字段分隔符等参数,可以将外部文件中的数据正确地导入到数据库中。
3. 使用Oracle SQL*Loader工具导入数据SQL*Loader是Oracle数据库中的一个数据导入工具,可以将外部文件中的数据导入到数据库表中。
通过创建控制文件、数据文件和日志文件,可以实现将外部文件中的数据批量导入到数据库中。
4. 使用pgloader工具导入数据pgloader是PostgreSQL数据库中的一个数据导入工具,可以将多种格式的外部文件中的数据导入到数据库表中。
通过编写配置文件,指定外部文件的路径、格式和字段映射关系,可以将外部文件中的数据正确地导入到数据库中。
三、导入数据的案例1. 导入CSV格式的数据文件到MySQL数据库假设有一个名为student的数据库表,包含id、name和age三个字段,要将一个名为student.csv的CSV格式的数据文件导入到该表中。
```sqlLOAD DATA INFILE 'student.csv' INTO TABLE studentFIELDS TERMINATED BY ','ENCLOSED BY '"'LINES TERMINATED BY '\n'IGNORE 1 ROWS;```2. 导入Excel文件到SQL Server数据库假设有一个名为employee的数据库表,包含id、name和salary 三个字段,要将一个名为employee.xlsx的Excel文件导入到该表中。
【IT专家】转载:利用sqluldr2导出数据和sqlldr导入数据的方法
转载:利用sqluldr2 导出数据和sqlldr 导入数据的方法Oracle 数据导出工具sqluldr2 可以将数据以csv、txt 等文件格式导出,适用于大批量数据的导出,导出速度非常快,导出后可以使用Oracle SQL Loader 工具将数据导入到数据库中。
下面将介绍Sqluldr2 和sqlldr 在Windows 平台下的数据处理过程。
当集成sqluldr2 在脚本中时,就希望屏蔽上不输出这些信息,但又希望这些信息能保留,这时可以用“LOG”选项来指定日志文件名。
sqluldr2test/test@127.0.1.1/orcl sql=test_sql.sql head=yes file=d:\tmp001.csv log=+d:\tmp001.log 当使用table 参数时,在目录下会生成对应的ctl 控制文件,如下语句会生成temp_001_sqlldr.ctl 文件。
sqluldr2test/test@127.0.1.1/orcl query=“select * from temp_001” table=temp_001 head=yes file=d:\tmp001.csv 在指定分隔符时,可以用字符的ASCII 代码(0xXX,大写的XX 为16 进制的ASCII 码值)来指定一个字符,常用的字符的ASCII 代码如下:在选择分隔符时,一定不能选择会在字段值中出现的字符组合,如常见的单词等,很多次导入时报错,回过头来找原因时,都发现是因为分隔符出现在字段值中了。
characterset :字符集,一般使用字符集AL32UTF8,如果出现中文字符集乱码时,改成ZHS16GBK。
fields terminatedby ‘string’:文本列分隔符。
当为tab 键时,改成’\t’,或者X’09’;空格分隔符whitespace,换行分隔符‘\n’或者X’0A’;回车分隔符‘\r’或者X’0D’;默认为’\t’。
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⾏。
oracle 导出csv 科学计数法
oracle 导出csv 科学计数法【实用版】目录一、问题背景二、解决方法1.使用 PLSQL 导出 CSV 文件2.修改字段属性3.使用 Excel 进行转换三、总结正文一、问题背景在数据处理过程中,我们常常需要将数据导出为 CSV 文件,以便进行进一步的数据分析或备份。
然而,在使用 Oracle 数据库导出 CSV 文件时,可能会遇到数字显示为科学计数法的问题。
特别是在涉及到大数字或身份证号等敏感信息时,科学计数法可能会导致数据的不准确或显示不符合预期。
因此,解决导出 CSV 文件中的科学计数法问题变得尤为重要。
二、解决方法1.使用 PLSQL 导出 CSV 文件在使用 Oracle 数据库导出 CSV 文件时,可以通过编写 PLSQL 脚本来实现。
在 PLSQL 脚本中,可以对查询的字段进行自定义设置,从而避免数字转换为科学计数法。
以下是一个简单的 PLSQL 脚本示例:```sqlSELECT """" || pkmsginfo || """", """" || pkbill || """", """" || processid || """", """" || workitemid || """", """" || operator|| """", """" || pkoper || """", """" || operunitcode || """"FROM your_table;```通过以上 PLSQL 脚本,查询的字段将被设置为字符类型,从而避免在导出 CSV 文件时发生科学计数法转换。
OracleSQLPlus导出数据到csv文件的方法
OracleSQLPlus导出数据到csv⽂件的⽅法时不时地我们需要导出⼀些数据⽤作备份、查看报表等,如果⽤Sql Developer导出会⾮常慢。
⽽⽤SqlPlus,则速度⾮常快。
准备SQL执⾏⽂件export.sql:set colsep ,set feedback offset heading offset newp noneset pagesize 0set linesize 200set trimout onspool /data/export.csvselect ||','||t.age||','||t.salary||','||t.email||','||t.titlefrom employee twhere t.age < 50order by t.salary desc;spool offexit说明:set colsep , #分割符set feedback off #回显本次sql命令处理记录条数set heading off # 输出标题set newp none #设置查询出来的数据分多少页显⽰,如果需要连续的数据,中间不要出现空⾏就把newp设置为noneset pagesize 0 # 输出每页⾏数,为了避免分页设置为0set linesize 200 # 每⾏⼤⼩,如果设置太⼩,会分⾏,最好是超好输出最⼤值set trimout on # 去除标准输出每⾏的拖尾空格set termout off #显⽰脚本中的命令的执⾏结果set echo on #设置运⾏命令是否显⽰语句set numwidth 12 # 输出number类型域长度执⾏:sqlplus user/pass@db @export.sql可以通过SQL指定⽂件名:col datestr new_value filenameselect '/data/export.'||to_char(sysdate,'yyyymmdd')||'.csv' datestr from dual;spool &filenameps:下⾯看⼀个例⼦通过sqlplus导出数据到csv例⼦[oracle@localhost ~]$ cat data.sqlset echo offset feedback offset linesize 100set pagesize 0set sqlprompt ''set trimspool onspool data.csvselect id || ',' || val from testtab;spool offexit[oracle@localhost ~]$总结到此这篇关于Oracle SQLPlus导出数据到csv⽂件的⽅法的⽂章就介绍到这了,更多相关oracle 导出数据csv⽂件内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
excel导入oracle的几种方法
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数据库。
Oracle数据库表导出和导入csv文件操作
Oracle数据库表导出和导入csv文件操作数据库是Oracle 9i1、导出csv文件这个十分简单,用pl/sql工具即可,首先选中要导出的表,右键选择Query data,在左侧出现的窗口中,选择Export Query Restls 选择要导出的文件类型即可,一般都导csv格式。
2、导入csv文件比喻数据库里有表t_province 字段1:province 字段2:cityCSV文件存放路径:f:\test.csv 列需与数据库保持一致还需要编写一个test.ctl文件,内容如下:load datainfile 'f:\城市.csv'into table "T_PROVINCE"fields terminated by ','(province,city)然后在cmd下,输入:sqlldr userid=clevergirl/clevergirl@ORCL_192.168.128.129 control=f:test.ctl 然后回车即可3、几个值得注意的地方一开始我是这样写的:sqlldr control=f:\test.ctl log=f:test.log报了:SQL*Loader-704: 内部错误: ulconnect: OCIServerAttach [0]ORA-12560: TNS: 协议适配器错误上网查了下,说是和环境变量有关,可以修改,但我觉得还是自己指定算了然后我怕权限不够,所以直接用sys用户登录:sqlldr userid=sys/sys@ORCL_192.168.128.129 control=f:test.ctl报了:SQL*Loader-128: 无法开始会话ORA-28009: connection to sys should be as sysdba or sysoper 上面这个换成正确的后,又报了一个SQL*Loader-941: 在描述表"t_province" 时出错ORA-04043: 对象"t_province" 不存在这个错误的问题出在ctl文件,里面的表名要大写才OK。
- 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”已经导入到数据库中。