条件1:清除以前跟这个物料相关的所有计划数据:未清的PO,SO,以及其他的计划订单等(删除行项目就行)。
专注于为中小企业提供网站设计制作、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业临夏州免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
条件2:库里的东西要全部清掉,不管是用初始化562出去还是消耗掉。
条件3:如果你启用了物料分类账,似乎需要将前期库存也清掉(比如当期是8月的话,7月的库存也必须为0),具体怎么清掉你可以查下note,我记得有个note专门讲怎么修改物料主数据上的批次管理。
需要用updata语句来批量修改。
如图,test表中有如下数据:
现在要将id小于3的name改成“孙七”,可用如下语句:
update test set name='孙七' where id3;
commit;执行后结果为:
最好的方法是批量修改,即每次修改5000条(一次修改不要超过一万条,否则影响性能). 虽然在11g中,我们也可以选择使用merge命令,但你的这种情况最好先修改一部分然后看看影响,毕竟在生产环境作这样的操作风险很大。如果是误操作,最好还是请DBA来恢复,虽然这样做会被挨骂,但总比错上加错,最后连挨骂的机会都没有要好得多。如果对这些修改真的有信心,而只是从性能考虑,那可以用下面的方法(pk_col 是表的主键
1、构建临时表进行主键关联更新
需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。
做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以保存更新前的数据,方便做数据回滚,T2表中有数据后,就可以执行下面脚本进行更新操作:
ps:c,d是需要更新的操作,e,f是条件。必须强调的是id必须是主键
1、构建临时表进行主键关联更新
需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。
做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以保存更新前的数据,方便做数据回滚,T2表中有数据后,就可以执行下面脚本进行更新操作:
ps:c,d是需要更新的操作,e,f是条件。必须强调的是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 -- 第一个全数字类型批号
FOR p_sale_ IN get_sale LOOP
UPDATE sale
SET flag = batch_ + trunc( i / 100 ) -- 批号
WHERE CURRENT OF get_sale;
i := i+1;
-- 调试器中输入检查结果
dbms_output.put_line(to_char(i)||'. '|| to_char( batch_ + trunc(i/2)) );
END LOOP;
-- 调试好后加上提交
-- commit;
end;
如果是字符型批号, 需要对上面的代码略做修改
主键表 - T表 '100W'数据同步到T1表(同步:TRUNCATE/DELETE或IMPDP...等方式[手动改数据])
例如: T表对应SEQ_T.NEXTVAL= 100W;
T1表对应SEQ_T.NEXTVAL= 10W;
TRUNCATE TABLE T1;
INSERT TABLE T1 SELECT * FROM T;
数据同步但T1表对应SEQ_T.NEXTVAL= 10W序列不变;
此时T1调用序列INSERT到T1表时就会报错 ( ORA-00001 : 违反唯一约束条件 (LOTTERY.PK_T1))
(若批量同步很多表就可能会引起很多表序列需要更新成主键最大值+ 1才能保证不报错
(可以用把源库的SEQUENCE同步过来①或者如下存储解决② ))
你应该考虑你要做哪一块?是做纯dba还是做ebs dba,现在的ocp都是paper test,背背TK就可以搞定,技术含量不高,做敲门砖还是可以的。纯dba就是纯数据库的管理,调优。ebs dba也叫application dba,不光管理数据库,还有应用部分,form,apache的管理,还要考虑系统整体架构,硬件什么都要考虑。薪水方面,ebs dba比纯dba高很多。
还有就是你又说到了Oracle ERP,这个可以分为3种,功能,开发和ebs dba。功能比较偏业务,开发主要是form builder,report builder,discoverer开发。ebs dba就是上面所说的了。
主要也是得看你个人喜好,做dba是比较枯燥的,没有想象的那么美好。头几年,待遇跟程序员比,差别不大。
如果想做ebs dba的话,你可以先从纯dba入手,熟悉oracle整个体系架构,再掌握一些硬件方面知识。有机会的话,转向ebs dba。
如果做业务的话,先做财务 物流开发,1-2年左右转向功能顾问。
总而言之,做业务比做技术有前途,尤其是在ERP行业,本人深有体会!!切记切记。
文章名称:oracle如何修改批次,oracle批量修改字段
浏览地址:https://www.cdcxhl.com/article26/hsijcg.html
成都网站建设公司_创新互联,为您提供App设计、做网站、虚拟主机、网站设计、移动网站建设、静态网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联