Oracle数据迁移存储过程
程序员文章站
2022-03-07 14:24:48
...
今天很尴尬,投了一个简历被hr说16就上大一,说我造假,哎,主要是这家公司还有我朋友老子给他们提供了很多解决方案,改了好多bug他们的项目我还都熟悉,阿西吧怎么碰到这么个辣鸡HR
吐槽完毕,步入正题另一个朋友碰到了Oracle的问题 plsql他们玩过;
要求,三张表联查将数据写入另一张表
create or replace procedure ps_campusAim
is
begin
--truncate table CRMTEST.LK_CAMPUSAIM;
INSERT INTO CRMTEST.LK_CAMPUSAIM(id,termId,termName,campusId,campusName,aimMoney,aimStu,aimSub,
freeSub,freeStu)
select ca.id,ca.termid ,t.termname,ca.campusid,ci.campusname,ca.aimmoney,ca.aimstu,
ca.aimsub,ca.freesub,ca.freestu
from CampusAim ca
left join CampusInfo ci
on ca.Campusid=ci.CampusID
left join terminfo t
on ca.Termid= t.termid;
commit;
end;
这是他写的plsql后来我改了语句发现还在报错
原来他查询结果里有NULL值知道问题所在就可以解决了选用NVL函数将NULL替换为"null"
create or replace procedure ps_campusAim
is
begin
execute immediate 'truncate table CRMTEST.LK_CAMPUSAIM';
INSERT INTO CRMTEST.LK_CAMPUSAIM(id,termId,termName,campusId, campusName ,aimMoney,aimStu,aimSub,
freeSub,freeStu)
select ca.id,ca.termid ,t.termname,ca.campusid,nvl(ci.campusName,'null') ,ca.aimmoney,ca.aimstu,
ca.aimsub,ca.freesub,ca.freestu
from CampusAim ca
left join CampusInfo ci
on ca.Campusid=ci.CampusID
left join terminfo t
on ca.Termid= t.termid;
commit;
end;
问题解决
下一篇: Oracle
推荐阅读