不管是update還是merge每次都是只能修改一站表,還沒聽說一次修改兩張表的。
創(chuàng)新互聯(lián)建站是一家從事企業(yè)網(wǎng)站建設、網(wǎng)站建設、成都網(wǎng)站建設、行業(yè)門戶網(wǎng)站建設、網(wǎng)頁設計制作的專業(yè)網(wǎng)站建設公司,擁有經(jīng)驗豐富的網(wǎng)站建設工程師和網(wǎng)頁設計人員,具備各種規(guī)模與類型網(wǎng)站建設的實力,在網(wǎng)站建設領域樹立了自己獨特的設計風格。自公司成立以來曾獨立設計制作的站點上千余家。
如果分別修改那就比較簡單了(先確定B列是否唯一,如果不唯一,那么可能存在修改擴大的問題,所以可能還要修改語句),update a set a.d=2 where a.b=(select b from E where h=1)(這是a表的,b表的改法更容易)
如果一起修改,那么可能只能臨時修改,也就是select的時候修改一下,這個一般沒什么用。
操作步驟如下:
準備數(shù)據(jù):在excel中構造出需要的數(shù)據(jù)
2.將excel中的數(shù)據(jù)另存為文本文件(有制表符分隔的)
3.將新保存到文本文件中的數(shù)據(jù)導入到pl*sql中
在pl*sql中選擇tools--text importer,在出現(xiàn)的窗口中選擇"Data from Textfile",然后再選擇"Open data file",
在彈出的文件選擇框中選中保存有數(shù)據(jù)的文本文件,此時將會看到data from textfile中顯示將要導入的數(shù)據(jù)
4.在configuration中進行如下配置
注:如果不將"Name in header"勾選上會導致字段名也當做記錄被導入到數(shù)據(jù)庫中,從而導致數(shù)據(jù)錯誤
5.點擊data to oracle,選擇將要導入數(shù)據(jù)的表,并在fields中將文本中的字段與表中的字段進行關聯(lián)
6.點擊import按鈕進行導入
7.查看導入的數(shù)據(jù)
OK,至此數(shù)據(jù)導入成功。
把查出來的數(shù)據(jù)做一個表g,a.rsc_status_cd as rsc_status
使用update g set g.rsc_status = '43'。
使用b表數(shù)據(jù)更新a表,那么where條件是什么,也就是說,更新a表中哪些數(shù)據(jù),用b表中的哪些數(shù)據(jù)更新,二者的關系是什么。從你的語句中我看不出b表和a表的關聯(lián)。
找到關聯(lián)條件后,通過關聯(lián)條件查出的b表數(shù)據(jù)是否唯一,如果不唯一,還是會出現(xiàn)“返回值多于一行”的錯誤。
邏輯結構
它由至少一個表空間和數(shù)據(jù)庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用數(shù)據(jù)庫數(shù)據(jù)的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同義詞、索引、簇和數(shù)據(jù)庫鏈等。邏輯存儲結構包括表空間、段和范圍,用于描述怎樣使用數(shù)據(jù)庫的物理空間。
總之,邏輯結構由邏輯存儲結構(表空間,段,范圍,塊)和邏輯數(shù)據(jù)結構(表、視圖、序列、存儲過程、同義詞、索引、簇和數(shù)據(jù)庫鏈等)組成,而其中的模式對象(邏輯數(shù)據(jù)結構)和關系形成了數(shù)據(jù)庫的關系設計。
以上內容參考:百度百科-Oracle數(shù)據(jù)庫
最好的方法是批量修改,即每次修改5000條(一次修改不要超過一萬條,否則影響性能). 雖然在11g中,我們也可以選擇使用merge命令,但你的這種情況最好先修改一部分然后看看影響,畢竟在生產(chǎn)環(huán)境作這樣的操作風險很大。如果是誤操作,最好還是請DBA來恢復,雖然這樣做會被挨罵,但總比錯上加錯,最后連挨罵的機會都沒有要好得多。如果對這些修改真的有信心,而只是從性能考慮,那可以用下面的方法(pk_col 是表的主鍵
1、構建臨時表進行主鍵關聯(lián)更新
需求:T1表有千萬級別的數(shù)據(jù)量,需要更新這個表的字段a,b滿足2個條件的記錄。
做法:一般業(yè)務會將條件通過excel表格提供給開發(fā),那么開發(fā)首先需要將這個excel表格的內容插入到臨時表T2中,考慮到a,b都不是主鍵,那么需要將a,b轉化成主鍵后再插入到T2表中,T2表中還可以保存更新前的數(shù)據(jù),方便做數(shù)據(jù)回滾,T2表中有數(shù)據(jù)后,就可以執(zhí)行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調的是id必須是主鍵
1、構建臨時表進行主鍵關聯(lián)更新
需求:T1表有千萬級別的數(shù)據(jù)量,需要更新這個表的字段a,b滿足2個條件的記錄。
做法:一般業(yè)務會將條件通過excel表格提供給開發(fā),那么開發(fā)首先需要將這個excel表格的內容插入到臨時表T2中,考慮到a,b都不是主鍵,那么需要將a,b轉化成主鍵后再插入到T2表中,T2表中還可以保存更新前的數(shù)據(jù),方便做數(shù)據(jù)回滾,T2表中有數(shù)據(jù)后,就可以執(zhí)行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調的是id必須是主鍵