declare
.
.
.
.
begin.
.
.
for i in (Select * from bpt_mapping_logic where master = tab_name and CHILD = 'MI9_CST_TEMP' ) loop
str1 := i.all_cols;
str2 := i.default_val;
select 'insert into '||i.child||'_temp
('||str1||' )
values
(' ||str2||' )' into str3 from dual;
select i.mapping into str5 from dual;
dbms_output.put_line (str3);
EXECUTE IMMEDIATE STR3;
end loop;
end;
以上代码即时获取 01008. 00000 - “并非所有变量绑定”错误
str3 ::::::::
的dbms输出str3 =
insert into
MI9_CST_TEMP_temp ( A , B , C , D )
values
('aaa' , 'bbb' , &C . &D);
显示
错误
答案 0 :(得分:0)
EXECUTE IMMEDIATE
无法以这种方式访问SQL * PLUS变量;如果您知道将有两个主机变量,将命名为& C和& D,您可以尝试
str3 := replace(replace(str3, chr(38)||'C', ':1'), chr(38)||'D', ':2');
EXECUTE IMMEDIATE STR3 using '&C', '&D';