日期:2014-05-17 浏览次数:20811 次
update ActiveRole set allow=1 where RoleId=In_RoleId and Menu_AId in (In_Ids); --这种写法错的In_Ids是一个字符串,而不是几个数字的集合
------解决方案--------------------
--试下,有问题再提出 create OR REPLACE procedure proc_Pope_OneLevel (In_RoleId number,In_Ids varchar2) is strsql varchar2(2000); begin update ActiveRole set allow=0 where RoleId=In_RoleId and Menu_AId<2000; strsql := 'begin update ActiveRole set allow=1 where RoleId=In_RoleId and Menu_AId in ('||In_Ids||'); end;'; execute immediate strsql; end; /
------解决方案--------------------
update ActiveRole set allow=1 where RoleId=In_RoleId
and instr(In_Ids,Menu_AId,1)>0;