最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Oracle數(shù)據(jù)庫(kù)中同時(shí)更新兩張表的簡(jiǎn)單方法

 更新時(shí)間:2015年11月21日 17:43:51   作者:王小明123  
這篇文章主要介紹了在Oracle數(shù)據(jù)庫(kù)中同時(shí)更新兩張表的簡(jiǎn)單方法,同時(shí)介紹了一種差異性合并更新的方法,需要的朋友可以參考下

以前只會(huì)寫(xiě)一些簡(jiǎn)單的updaet語(yǔ)句,比如updae table set c1='XXX' 之類的

今天遇到一個(gè)數(shù)據(jù)訂正的問(wèn)題,項(xiàng)目背景如下,有個(gè)表A,有兩個(gè)字段a1,a2還有一個(gè)關(guān)聯(lián)表B,其中也有兩個(gè)字段,b1和b2。其中a2和b2是關(guān)聯(lián)的,想把A中的字段a1更新成B中的b1

理論上sql應(yīng)該挺好寫(xiě)的,但是在oralce中實(shí)現(xiàn)了半天一直報(bào)語(yǔ)法錯(cuò)誤。而且確實(shí)還有些小小細(xì)節(jié)沒(méi)有注意到。

首先上測(cè)試數(shù)據(jù)

表1,ZZ_TEST1

20151121174054751.jpg (422×107)

表2,ZZ_TEST2

20151121174127229.jpg (299×109)

要把表一的text更新成表二的text1值,對(duì)應(yīng)的sql如下:

update ZZ_TEST1 t1 set t1."text" = (
 select T2."text1" from ZZ_TEST2 t2 where T2."pid"=t1."id"
) 
WHERE EXISTS
(
 SELECT 1 FROM ZZ_TEST2 t2 where T2."pid"=t1."id"
)

后面的where條件表示一個(gè)限制條件,只更新那些符合條件的數(shù)據(jù),也可以寫(xiě)成

update ZZ_TEST1 t1 set t1."text" = (
 select T2."text1" from ZZ_TEST2 t2 where T2."pid"=t1."id"
)
where t1."id" in (select "pid" from ZZ_TEST2 )

另外還有一種merge的寫(xiě)法,對(duì)應(yīng)的sql如下:

merge into ZZ_TEST1 t1 using ZZ_TEST2 t2 on (t1."id" =t2."pid") 
 
when matched then
 
update set t1."text"=t2."text1"

為了避免T2中有多條數(shù)據(jù)對(duì)應(yīng)T1中的數(shù)據(jù),可以把sql改成如下的方式:

MERGE INTO ZZ_TEST1 t1 USING 
( 
SELECT * FROM ZZ_TEST2 X WHERE X. ROWID = 
(SELECT MAX(Y.ROWID) FROM ZZ_TEST2 Y WHERE X."id" = Y."id" )
 ) 
t2 
ON (t1."id" = t2."pid") 
WHEN MATCHED THEN
UPDATE SET t1."text" = t2."text1"

還有一種update from 的語(yǔ)法,經(jīng)過(guò)測(cè)試在oracle和mysql中不適用


總結(jié)一下,項(xiàng)目中嘗嘗需要把一張表的字段更新到另一張表中的某一個(gè)字段??梢允褂胾pdate語(yǔ)法,并要做好限定。會(huì)使用merge的語(yǔ)法,另外還有一種merge的語(yǔ)法也可以,update from 不能再oracle和mysql中使用。

相關(guān)文章

  • Oracle表空間大小如何查看及擴(kuò)增

    Oracle表空間大小如何查看及擴(kuò)增

    Oracle數(shù)據(jù)庫(kù)中,表空間是存儲(chǔ)數(shù)據(jù)對(duì)象的關(guān)鍵結(jié)構(gòu),管理表空間包括監(jiān)控其大小并根據(jù)需要進(jìn)行擴(kuò)展,以確保數(shù)據(jù)庫(kù)運(yùn)行高效,查看表空間大小,可以通過(guò)SQL查詢或使用Oracle Enterprise Manager,擴(kuò)展表空間的方法有手動(dòng)增加數(shù)據(jù)文件
    2024-10-10
  • Oracle存儲(chǔ)過(guò)程基本語(yǔ)法介紹

    Oracle存儲(chǔ)過(guò)程基本語(yǔ)法介紹

    Oracle存儲(chǔ)過(guò)程基本語(yǔ)法介紹,有需求的朋友可以參考下
    2012-11-11
  • Oracle BULK COLLECT批量取數(shù)據(jù)解決方法

    Oracle BULK COLLECT批量取數(shù)據(jù)解決方法

    在oracle使用中為了提高取數(shù)據(jù)效率,本文將詳細(xì)介紹Oracle BULK COLLECT批量取數(shù)據(jù),需要了解跟多的朋友可以參考下
    2012-11-11
  • Oracle 子程序參數(shù)模式,IN,OUT,NOCOPY

    Oracle 子程序參數(shù)模式,IN,OUT,NOCOPY

    Oracle 子程序參數(shù)模式主要有IN,OUT,NOCOPY,IN和OUT可以組合,OUT和NOCOPY也可以組合使用.
    2009-10-10
  • 在Oracle數(shù)據(jù)庫(kù)表中加載多個(gè)數(shù)據(jù)文件的方法詳解

    在Oracle數(shù)據(jù)庫(kù)表中加載多個(gè)數(shù)據(jù)文件的方法詳解

    這篇文章主要給大家介紹了在Oracle數(shù)據(jù)庫(kù)表中加載多個(gè)數(shù)據(jù)文件的方法,本文中,我將展示 SQL 加載器 + Unix 腳本實(shí)用程序的強(qiáng)大功能,其中 SQL 加載器可以使用自動(dòng) shell 腳本加載多個(gè)數(shù)據(jù)文件,需要的朋友可以參考下
    2024-01-01
  • Oracle  call 和 exec的詳解及區(qū)別

    Oracle call 和 exec的詳解及區(qū)別

    這篇文章主要介紹了Oracle call 和 exec的詳解及區(qū)別的相關(guān)資料,這里舉例說(shuō)明了它們之間的區(qū)別,需要的朋友可以參考下
    2016-11-11
  • Oracle外鍵不加索引引起死鎖示例

    Oracle外鍵不加索引引起死鎖示例

    這篇文章主要介紹了Oracle外鍵不加索引引起死鎖的情況及解決,需要的朋友可以參考下
    2014-05-05
  • oracle net manager 數(shù)據(jù)傳輸安全步驟詳解

    oracle net manager 數(shù)據(jù)傳輸安全步驟詳解

    oracle net manager來(lái)加密客戶端與數(shù)據(jù)庫(kù)之間或中間件與 數(shù)據(jù)庫(kù)之間的網(wǎng)絡(luò)傳輸數(shù)據(jù)。這篇文章主要介紹了oracle net manager 數(shù)據(jù)傳輸安全 ,需要的朋友可以參考下
    2018-09-09
  • 詳解Oracle 11g DRCP連接方式的基本原理

    詳解Oracle 11g DRCP連接方式的基本原理

    這篇文章主要為大家詳細(xì)介紹了Oracle 11g DRCP連接方式的基本原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Oracle?REGEXP_LIKE模糊查詢用法例子

    Oracle?REGEXP_LIKE模糊查詢用法例子

    Oracle中偶遇正則表達(dá)式的使用,簡(jiǎn)直逆天,在數(shù)據(jù)統(tǒng)計(jì)方面,最長(zhǎng)用的就是regexp_like與regexp_replace兩個(gè)了,下面這篇文章主要給大家介紹了關(guān)于Oracle?REGEXP_LIKE模糊查詢用法例子的相關(guān)資料,需要的朋友可以參考下
    2022-11-11

最新評(píng)論

宣恩县| 海宁市| 新余市| 司法| 韶关市| 大安市| 南阳市| 咸阳市| 红原县| 凉山| 讷河市| 三台县| 湄潭县| 会宁县| 平果县| 金平| 共和县| 上高县| 鲁山县| 清镇市| 靖江市| 犍为县| 治多县| 太仆寺旗| 那曲县| 射洪县| 赞皇县| 永顺县| 民丰县| 固阳县| 任丘市| 剑川县| 正镶白旗| 霍山县| 巴青县| 乌拉特后旗| 余干县| 鹰潭市| 印江| 淳安县| 阿拉善右旗|