1.ora-38104: 无法更新 on 子句中引用的列
原因因为 在merge into 语句的update中 更新了用于作为on 链接的字段
merge into fxyd_rwsp sp
using
(SELECT ? RWPC_BH,
SYSDATE SPSJ,
? XXLY_DM,
? SPYJ,
? SPYJSM,
? SPRY_DM,
? SPRY_MC,
? SPY_SWJG_DM
FROM DUAL) newsp
注意
此处的
on (sp.rwpc_bh = newsp.RWPC_BH)
on (sp.rwpc_bh = newsp.RWPC_BH)
when not matched then
insert values(newsp.RWPC_BH,newsp.SPSJ,newsp.XXLY_DM,newsp.SPYJ,newsp.SPYJSM,newsp.SPRY_DM,newsp.SPRY_MC,newsp.SPY_SWJG_DM)
when matched then
注意
nvl('',(select dm.kzsx1 from fxyd_dm dm where dm.dm = dm_jczt.jczt_dm and dm.lx_dm = 'PGZFZZTDZ')) jczt_mc
在外层套上一个nvl就可以了
7.ORA-01008
并非所有变量都已绑定
8.ORA-01436: CONNECT BY loop in user data
在树形查询中存在循环 (原因是[size=1em]t.gbmb_bh是存在为空的数据null的数据)
update fxyd_rwmx mx
set mx.gbxxgs = (
select count(1)-1 from
fxyd_rwmx t
where t.rwlx_dm !='XXBC'
start with t.fxxx_bh = mx.fxxx_bh
connect by prior t.fxxx_bh = t.gbmb_bh
)
where mx.gbxxgs >0
解决方案