目标:动态执行以下语句
insert into tmp_oa2
(value, value2, value3)
select '中山一路', count(distinct a.userid), count(a.sm_no)
from digit_assist a,
(select * from serv_st where permark = '1') b,
house c
where a.userid = b.userid
and b.houseno = c.houseno
and c.addr like '%中山一路%';
其中地址(例:中山一路),从tmp_oa的Value字段获取
我尝试如下方法:
declare
cursor get_addr is
select value from tmp_oa;
insrt varchar2(500) := 'insert into tmp_oa2(value, value2, value3)' ||
'select :1, count(distinct a.userid), count(a.sm_no)
from digit_assist a,
(select * from serv_st where permark = ''1'' ) b,
house c
where a.userid = b.userid
and b.houseno = c.houseno
and c.addr like ''%:2%''';
addstmp_oa.value%type;
begin
open get_addr;
loop
fetch get_addr
into adds;
execute immediate insrt
using adds, adds;
exit when get_addr%notfound;
end loop;
close get_addr;
end;
报错:bind varialble does not exist
应该是and c.addr like ''%:2%''' 有问题,,但不知道怎么改
求高手!!
|