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 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
前兩天接到一個需求——需要編程將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 怎么批量導入圖片
標題URL:http://vcdvsql.cn/article34/dooohse.html
成都網站建設公司_創新互聯,為您提供靜態網站、微信公眾號、網站改版、做網站、全網營銷推廣、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯