发布网友 发布时间:2022-04-27 07:59
共2个回答
热心网友 时间:2023-09-14 10:20
num1 NUMBER := 181,182;追答首先你定义的数字型的,数字型是不能有逗号的,
只能用varchar2
其次就算用VARCHAR2传进去的话用静态SQL也是没用的。
静态SQL传两个进去也是没有用的!只会变成 in ('181,182') 而不是 in ('181','182');
唯一的方法就是用动态sql
create or replace procere Pr_d2_delCar(d2_cpkid in varchar2) is
vsql varchar2(4000);
begin
vsql:='delete from D2_HC t where fkpkid in (' ||d2_cpkid||') and hctype=''2'' ';
EXECUTE IMMEDIATE v_sql;
--其余的同理。。。
end
热心网友 时间:2023-09-14 10:20
可以传进去,存储过程的参数定义成varchar2类型,删除数据时条件判断使用instr()函数: