oracle怎么多行插入 oracle 連接字段多行值

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

Oracle批量插入數(shù)據(jù)可用PL/SQL的命令窗口執(zhí)行。

寬甸ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

使用工具:PL/SQL

步驟:

1、登錄PL/SQL到指定數(shù)據(jù)庫(kù)。

2、登錄后,點(diǎn)擊左上方“紙片”狀圖標(biāo),然后選擇“Command

Window”選項(xiàng),進(jìn)入命令窗口。

3、然后在本地電腦編寫(xiě)insert(即插入語(yǔ)句),每句以逗號(hào)分隔。如圖:

4、然后為文件起名字,以.sql為文件后綴,如“執(zhí)行.sql”,保存到指定路徑,如

c盤(pán)

data目錄下。

5、在打開(kāi)的命令窗口下執(zhí)行如下語(yǔ)句:

1

@c:\data\執(zhí)行.sql

其中“@”為必寫(xiě)內(nèi)容,“c:\data\”為sql文件保存路徑,“執(zhí)行.sql”為要執(zhí)行的腳本文件名。

6、敲擊

回車(chē)鍵

執(zhí)行,執(zhí)行后會(huì)有成功提示,如圖:

7、最后去目標(biāo)表查詢(xún)數(shù)據(jù),檢驗(yàn)結(jié)果成功。其中如圖的四條為新插入的數(shù)據(jù)。

Oracle中使用PL/SQL怎樣用循環(huán)插入多條數(shù)據(jù)?

使用loop循環(huán),比如:

for item in (select a,b,c from table_a where 條件) loop

insert into table_b(a,b,c) values (item.a,item.b,item.c);

end loop;

也可以使用索引表循環(huán),以上只是一個(gè)簡(jiǎn)單的例子,需要根據(jù)你的具體情況選擇循環(huán)方式。

1、采用insert into values 語(yǔ)句插入一條,寫(xiě)很多條語(yǔ)句即可多條數(shù)據(jù),這種主要針對(duì)于離散值以及一些基礎(chǔ)信息的錄入,如:insert into test(xh,mc) values('123','測(cè)試');

如果插入的數(shù)據(jù)有規(guī)律,可利用for、loop循環(huán)插入,主要用于批量生成測(cè)試數(shù)據(jù)

begin

for i in 1 .. 100 loop

insert into test(xh,mc) values(i||'','測(cè)試');

end loop;

end ;。

2、采用insert into selct from 語(yǔ)句來(lái)一次性插入一個(gè)集合,這種主要依據(jù)于要插入的數(shù)據(jù)源已經(jīng)存儲(chǔ)于數(shù)據(jù)庫(kù)對(duì)象中,或者利用dual虛表來(lái)構(gòu)造數(shù)據(jù),經(jīng)過(guò)加工后寫(xiě)入一個(gè)集合。

insert into test (xh,mx) select '123','測(cè)試' from dual;

3、采用plsql等工具、或者oracle的imp、impdp命令來(lái)導(dǎo)入,這種主要用數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)之間的大批量數(shù)據(jù)導(dǎo)入,導(dǎo)入的數(shù)據(jù)格式為plsql的pde、oracle的dmp等。dmp文件可使用

table_exists_action參數(shù)控制導(dǎo)入動(dòng)作:replace替換原表,truncate清除原表數(shù)據(jù)再導(dǎo)入,append增量導(dǎo)入數(shù)據(jù),當(dāng)然impdp數(shù)據(jù)泵的導(dǎo)入要依賴(lài)于directory路徑。

impdp 用戶(hù)名/密碼 dumpfile=123.dmp logfile=123.log directory=imp_dir tables=test table_exists_action=append。

4、使用excel文件直接拷貝。這種主要用于要寫(xiě)入的數(shù)據(jù)已是excel文件或者行列分明的其它格式文件,每一列的值和表結(jié)構(gòu)相對(duì)應(yīng),可直接打開(kāi)表的行級(jí)鎖,把數(shù)據(jù)拷貝進(jìn)入。

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)頁(yè)題目:oracle怎么多行插入 oracle 連接字段多行值
本文地址:http://muchs.cn/article16/hgsjdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、品牌網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、網(wǎng)站制作、App設(shè)計(jì)、定制開(kāi)發(fā)

廣告

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

外貿(mào)網(wǎng)站制作