当前位置: 代码迷 >> Oracle开发 >> orcale存储过程中update不成功解决方法
  详细解决方案

orcale存储过程中update不成功解决方法

热度:29   发布时间:2016-04-24 06:39:35.0
orcale存储过程中update不成功
我在存储过程中,有这么一段update语句,但是怎么都成功不了,执行的时候也不报错。当我把where条件后的v_sql换成'B21307180002'却可以成功。望高手解答。
 update ar_settleplan
           set accvouno = v_VoucherNo, accdate = sysdate, accstate = '0'
        where arcode in (v_sql);
------解决方案--------------------
引用:
我在存储过程中,有这么一段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
------解决方案--------------------
')' 
  相关解决方案