我在存储过程中,有这么一段update语句,但是怎么都成功不了,执行的时候也不报错。当我把where条件后的v_sql换成'B21307180002'却可以成功。望高手解答。
update ar_settleplan
set accvouno = v_VoucherNo, accdate = sysdate, accstate = '0'
where arcode in (v_sql);
------解决方案--------------------
楼主这样使用只是吧v_sql当做一个字符串处理,而不会处理成你想要的in的效果。
这种情况得用动态sql,
execute immediate 'update ar_settleplan set accvouno = '
------解决方案--------------------
v_VoucherNo
------解决方案--------------------
', accdate = sysdate, accstate = ''0'' where arcode in ('
------解决方案--------------------
v_sql
------解决方案--------------------
')'