条件1:清除以前跟这个物料相关的所有计划数据:未清的PO,SO,以及其他的计划订单等(删除行项目就行).
需要用updata语句来批量修改.
如图,test表中有如下数据:
commit;执行后结果为:
①.、构建临时表进行主键关联更新
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;
-- 调试器中输入检查结果
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高很多.
主要也是得看你个人喜好,做dba是比较枯燥的,没有想象的那么美好.头几年,待遇跟程序员比,差别不大.
如果想做ebs dba的话,你可以先从纯dba入手,熟悉oracle整个体系架构,再掌握一些硬件方面知识.有机会的话,转向ebs dba.
都说到这里了大家应该明白,做业务比做技术有前途,尤其是在ERP行业,本人深有体会!!切记切记.
以上就是土嘎嘎小编为大家整理的oracle如何修改批次相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!