oracle动态sql中使用位操作(bitand/bitor)的问题 20
已知table1.status=0为什么我在存储过程中执行v_roomids:='1,2,3';executeimmediate'updatetable1setstatu...
已知table1.status=0为什么我在存储过程中执行
v_roomids:='1,2,3';
execute immediate 'update table1 set status=bitor(status,64) where roomid in (' || v_roomids || ')';
commit;
不起作用?
把这句Sql拷到command窗口下运行是没问题的,但是动态执行就无效,也不报错。bitor/bitand函数不能用在动态Sql中吗?
create or replace procedure FRP_SH is
v_roomids varchar2(200);
begin
v_roomids:='1,2,3';
execute immediate 'update nbgd.fc_room set fr_status=bitor(fr_status,64) where roomid in (' ||
v_roomids || ')';
commit;
end FRP_SH;
只不过是bitor对status操作后又把值赋还给status而已 展开
v_roomids:='1,2,3';
execute immediate 'update table1 set status=bitor(status,64) where roomid in (' || v_roomids || ')';
commit;
不起作用?
把这句Sql拷到command窗口下运行是没问题的,但是动态执行就无效,也不报错。bitor/bitand函数不能用在动态Sql中吗?
create or replace procedure FRP_SH is
v_roomids varchar2(200);
begin
v_roomids:='1,2,3';
execute immediate 'update nbgd.fc_room set fr_status=bitor(fr_status,64) where roomid in (' ||
v_roomids || ')';
commit;
end FRP_SH;
只不过是bitor对status操作后又把值赋还给status而已 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询