大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

怎么批量导入oracle 怎么批量导入图片

Oracle 批量插入数据怎么做

oracle批量插入数据使用sqlldr。

创新互联公司是一家专注于网站设计、成都做网站与策划设计,武乡网站建设哪家好?创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:武乡等地区。武乡做网站价格咨询:18982081108

首先将要导入的excel文件另存为csv格式(默认逗号间隔,另存为csv,不只是改后缀名)

然后用sqlldr导入。

sqlldr的参数很多,简单的几个就可以了:

建一个控制文件control.txt:

load data

infile 'f:\test.csv'

into table test1

(id char terminated by ',',

name char terminated by ',',

height char terminated by ',',

birth char terminated by whitespace)

----这里根据需要,修改数据文件的名字和路径。括号里面的字段名和字段数也根据实际情况修改。由于保存的是csv,字段间以逗号隔开,因此控制文件里定义最后一个字段以whitespace来分隔,其它的用','

然后使用sql*loader:

sqlldr userid=USERNAME/PASSWORD@XXXX control=f:\control.txt log=f:\test.log bad=f:\testbad.csv

userid后跟用户名密码,@后的是网络服务名,需要在客户端的tnsnames.ora文件里定义。control后的值是刚刚建的控制文件的路径,日志将生成在log参数指定的位置上,如果有记录没有导入成功,这些记录会放置在bad后指定的文件里。

怎么插入大量数据到Oracle数据库中

可以使用oracle sql loader批量导入数据:

生成测试数据的EXCEL文件,把EXCEL文件另存为CSV(逗号分隔)(*.csv),控制文件设置为用逗号分隔。

示例:

LOAD DATA

INFILE ‘d:\car.csv’

APPEND INTO TABLE t_car_temp

FIELDS TERMINATED BY ","

(phoneno,vip_car)

保存为input.ctl

最后在命令行下输入:

C:\sqlldr userid=system/manager

control=input.ctl(在unix环境下亦同)

默认日志文件名为:input.log

默认坏记录文件为:input.bad

Oracle数据的批量插入

前两天接到一个需求——需要编程将SQL Server中的数据插入至Oracle 数据大约有 多万条记录 开始的时候我采取了直接构建SQL插入的方式 结果耗时太长 为了提高性能我上网找了资料 最终采用DataAdapter批量插入至Oracle 提高了性能

代码如下

一 直接构建SQL语句插入

VB NET

sw Start()

Read Z J from SQL Server

Dim sqlCmd As New SqlCommand()

sqlCmd Connection = sqlConnection

sqlCmd CommandText = SELECT * FROM  Z J

Dim sqlDr As SqlDataReader

sqlDr = sqlCmd ExecuteReader()

Dim cmdInsertZ J As New OracleCommand()

cmdInsertZ J Connection = oraConnection

cmdInsertZ J CommandText = BuildSQLStatement(SQLType Insert z j )

Dim plantLever material oldMaterialNum materialDescription As Object

While sqlDr Read()

 plantLever = ReadSqlDataReader(sqlDr )

material = ReadSqlDataReader(sqlDr )

oldMaterialNum = ReadSqlDataReader(sqlDr )

materialDescription = ReadSqlDataReader(sqlDr )

Insert to Oracle table Z J

cmdInsertZ J Parameters AddWithValue( :plantLever plantLever)

cmdInsertZ J Parameters AddWithValue( :material material)

cmdInsertZ J Parameters AddWithValue( :oldMaterialNum oldMaterialNum)

cmdInsertZ J Parameters AddWithValue( :materialDescription materialDescription)

cmdInsertZ J ExecuteNonQuery()

End While

sw Stop()

Loger Info( Reading z j form sql sever used sw Elapsed TotalSeconds ToString())

二 采用DataAdapter实现批量插入

VB NET

sw Start()

Read Z J from SQL Server

Dim sqlCmd As New SqlCommand()

sqlCmd Connection = sqlConnection

sqlCmd CommandText = SELECT * FROM  Z J

Dim sqlDr As SqlDataReader

sqlDr = sqlCmd ExecuteReader()

Dim cmdInsertZ J As New OracleCommand()

cmdInsertZ J Connection = oraConnection

cmdInsertZ J CommandText = BuildSQLStatement(SQLType Insert z j )

Dim dtSqlZ J As New DataTable

dtSqlZ J Columns Add( plantLever )

dtSqlZ J Columns Add( material )

dtSqlZ J Columns Add( oldMaterialNum )

dtSqlZ J Columns Add( materialDescription )

Dim plantLever material oldMaterialNum materialDescription As Object

While sqlDr Read()

plantLever = ReadSqlDataReader(sqlDr )

material = ReadSqlDataReader(sqlDr )

oldMaterialNum = ReadSqlDataReader(sqlDr )

materialDescription = ReadSqlDataReader(sqlDr )

dtSqlZ J Rows Add(plantLever material oldMaterialNum materialDescription)

End While

sw Stop()

Loger Info( Reading z j form sql sever used sw Elapsed TotalSeconds ToString())

sw Start()

Dim oraDa As New OracleDataAdapter()

oraDa InsertCommand = cmdInsertZ J

oraDa InsertCommand Parameters Add( :plantLever OracleType Char plantLever )

oraDa InsertCommand Parameters Add( :material OracleType Char material )

oraDa InsertCommand Parameters Add( :oldMaterialNum OracleType Char oldMaterialNum )

oraDa InsertCommand Parameters Add( :materialDescription OracleType Char materialDescription )

oraDa InsertCommand UpdatedRowSource = UpdateRowSource None

oraDa UpdateBatchSize =     Adjust the batch size based on testing result

oraDa Update(dtSqlZ J)

sw Stop()

lishixinzhi/Article/program/Oracle/201311/18480


本文题目:怎么批量导入oracle 怎么批量导入图片
文章地址:http://dzwzjz.com/article/dooohse.html
在线咨询
服务热线
服务热线:028-86922220
TOP