條件1:清除以前跟這個物料相關(guān)的所有計劃數(shù)據(jù):未清的PO,SO,以及其他的計劃訂單等(刪除行項目就行)。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)臨夏州免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
條件2:庫里的東西要全部清掉,不管是用初始化562出去還是消耗掉。
條件3:如果你啟用了物料分類賬,似乎需要將前期庫存也清掉(比如當(dāng)期是8月的話,7月的庫存也必須為0),具體怎么清掉你可以查下note,我記得有個note專門講怎么修改物料主數(shù)據(jù)上的批次管理。
需要用updata語句來批量修改。
如圖,test表中有如下數(shù)據(jù):
現(xiàn)在要將id小于3的name改成“孫七”,可用如下語句:
update test set name='孫七' where id3;
commit;執(zhí)行后結(jié)果為:
最好的方法是批量修改,即每次修改5000條(一次修改不要超過一萬條,否則影響性能). 雖然在11g中,我們也可以選擇使用merge命令,但你的這種情況最好先修改一部分然后看看影響,畢竟在生產(chǎn)環(huán)境作這樣的操作風(fēng)險很大。如果是誤操作,最好還是請DBA來恢復(fù),雖然這樣做會被挨罵,但總比錯上加錯,最后連挨罵的機(jī)會都沒有要好得多。如果對這些修改真的有信心,而只是從性能考慮,那可以用下面的方法(pk_col 是表的主鍵
1、構(gòu)建臨時表進(jìn)行主鍵關(guān)聯(lián)更新
需求:T1表有千萬級別的數(shù)據(jù)量,需要更新這個表的字段a,b滿足2個條件的記錄。
做法:一般業(yè)務(wù)會將條件通過excel表格提供給開發(fā),那么開發(fā)首先需要將這個excel表格的內(nèi)容插入到臨時表T2中,考慮到a,b都不是主鍵,那么需要將a,b轉(zhuǎn)化成主鍵后再插入到T2表中,T2表中還可以保存更新前的數(shù)據(jù),方便做數(shù)據(jù)回滾,T2表中有數(shù)據(jù)后,就可以執(zhí)行下面腳本進(jìn)行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強(qiáng)調(diào)的是id必須是主鍵
1、構(gòu)建臨時表進(jìn)行主鍵關(guān)聯(lián)更新
需求:T1表有千萬級別的數(shù)據(jù)量,需要更新這個表的字段a,b滿足2個條件的記錄。
做法:一般業(yè)務(wù)會將條件通過excel表格提供給開發(fā),那么開發(fā)首先需要將這個excel表格的內(nèi)容插入到臨時表T2中,考慮到a,b都不是主鍵,那么需要將a,b轉(zhuǎn)化成主鍵后再插入到T2表中,T2表中還可以保存更新前的數(shù)據(jù),方便做數(shù)據(jù)回滾,T2表中有數(shù)據(jù)后,就可以執(zhí)行下面腳本進(jìn)行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強(qiáng)調(diào)的是id必須是主鍵
declare
i integer;
batch_ number;
sale_rec_ sale%ROWTYPE;
CURSOR get_sale
IS
SELECT *
FROM sale
-- order by 某條件
FOR UPDATE;
begin
i := 0;
batch_ = 1000 -- 第一個全數(shù)字類型批號
FOR p_sale_ IN get_sale LOOP
UPDATE sale
SET flag = batch_ + trunc( i / 100 ) -- 批號
WHERE CURRENT OF get_sale;
i := i+1;
-- 調(diào)試器中輸入檢查結(jié)果
dbms_output.put_line(to_char(i)||'. '|| to_char( batch_ + trunc(i/2)) );
END LOOP;
-- 調(diào)試好后加上提交
-- commit;
end;
如果是字符型批號, 需要對上面的代碼略做修改
主鍵表 - T表 '100W'數(shù)據(jù)同步到T1表(同步:TRUNCATE/DELETE或IMPDP...等方式[手動改數(shù)據(jù)])
例如: T表對應(yīng)SEQ_T.NEXTVAL= 100W;
T1表對應(yīng)SEQ_T.NEXTVAL= 10W;
TRUNCATE TABLE T1;
INSERT TABLE T1 SELECT * FROM T;
數(shù)據(jù)同步但T1表對應(yīng)SEQ_T.NEXTVAL= 10W序列不變;
此時T1調(diào)用序列INSERT到T1表時就會報錯 ( ORA-00001 : 違反唯一約束條件 (LOTTERY.PK_T1))
(若批量同步很多表就可能會引起很多表序列需要更新成主鍵最大值+ 1才能保證不報錯
(可以用把源庫的SEQUENCE同步過來①或者如下存儲解決② ))
你應(yīng)該考慮你要做哪一塊?是做純dba還是做ebs dba,現(xiàn)在的ocp都是paper test,背背TK就可以搞定,技術(shù)含量不高,做敲門磚還是可以的。純dba就是純數(shù)據(jù)庫的管理,調(diào)優(yōu)。ebs dba也叫application dba,不光管理數(shù)據(jù)庫,還有應(yīng)用部分,form,apache的管理,還要考慮系統(tǒng)整體架構(gòu),硬件什么都要考慮。薪水方面,ebs dba比純dba高很多。
還有就是你又說到了Oracle ERP,這個可以分為3種,功能,開發(fā)和ebs dba。功能比較偏業(yè)務(wù),開發(fā)主要是form builder,report builder,discoverer開發(fā)。ebs dba就是上面所說的了。
主要也是得看你個人喜好,做dba是比較枯燥的,沒有想象的那么美好。頭幾年,待遇跟程序員比,差別不大。
如果想做ebs dba的話,你可以先從純dba入手,熟悉oracle整個體系架構(gòu),再掌握一些硬件方面知識。有機(jī)會的話,轉(zhuǎn)向ebs dba。
如果做業(yè)務(wù)的話,先做財務(wù) 物流開發(fā),1-2年左右轉(zhuǎn)向功能顧問。
總而言之,做業(yè)務(wù)比做技術(shù)有前途,尤其是在ERP行業(yè),本人深有體會??!切記切記。
文章名稱:oracle如何修改批次,oracle批量修改字段
瀏覽地址:http://jinyejixie.com/article26/hsijcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、做網(wǎng)站、虛擬主機(jī)、網(wǎng)站設(shè)計、移動網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)