怎么批量導(dǎo)入oracle 怎么批量導(dǎo)入圖片

Oracle 批量插入數(shù)據(jù)怎么做

oracle批量插入數(shù)據(jù)使用sqlldr。

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站與策劃設(shè)計(jì),武鄉(xiāng)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:武鄉(xiāng)等地區(qū)。武鄉(xiāng)做網(wǎng)站價(jià)格咨詢:18982081108

首先將要導(dǎo)入的excel文件另存為csv格式(默認(rèn)逗號(hào)間隔,另存為csv,不只是改后綴名)

然后用sqlldr導(dǎo)入。

sqlldr的參數(shù)很多,簡(jiǎn)單的幾個(gè)就可以了:

建一個(gè)控制文件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)

----這里根據(jù)需要,修改數(shù)據(jù)文件的名字和路徑。括號(hào)里面的字段名和字段數(shù)也根據(jù)實(shí)際情況修改。由于保存的是csv,字段間以逗號(hào)隔開(kāi),因此控制文件里定義最后一個(gè)字段以whitespace來(lái)分隔,其它的用','

然后使用sql*loader:

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

userid后跟用戶名密碼,@后的是網(wǎng)絡(luò)服務(wù)名,需要在客戶端的tnsnames.ora文件里定義。control后的值是剛剛建的控制文件的路徑,日志將生成在log參數(shù)指定的位置上,如果有記錄沒(méi)有導(dǎo)入成功,這些記錄會(huì)放置在bad后指定的文件里。

怎么插入大量數(shù)據(jù)到Oracle數(shù)據(jù)庫(kù)中

可以使用oracle sql loader批量導(dǎo)入數(shù)據(jù):

生成測(cè)試數(shù)據(jù)的EXCEL文件,把EXCEL文件另存為CSV(逗號(hào)分隔)(*.csv),控制文件設(shè)置為用逗號(hào)分隔。

示例:

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環(huán)境下亦同)

默認(rèn)日志文件名為:input.log

默認(rèn)壞記錄文件為:input.bad

Oracle數(shù)據(jù)的批量插入

前兩天接到一個(gè)需求——需要編程將SQL Server中的數(shù)據(jù)插入至Oracle 數(shù)據(jù)大約有 多萬(wàn)條記錄 開(kāi)始的時(shí)候我采取了直接構(gòu)建SQL插入的方式 結(jié)果耗時(shí)太長(zhǎng) 為了提高性能我上網(wǎng)找了資料 最終采用DataAdapter批量插入至Oracle 提高了性能

代碼如下

一 直接構(gòu)建SQL語(yǔ)句插入

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實(shí)現(xiàn)批量插入

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

網(wǎng)站標(biāo)題:怎么批量導(dǎo)入oracle 怎么批量導(dǎo)入圖片
標(biāo)題URL:http://muchs.cn/article34/dooohse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、微信公眾號(hào)、網(wǎng)站改版、做網(wǎng)站全網(wǎng)營(yíng)銷推廣、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司