存储过程中使用for出现ORA-01732
CREATE OR REPLACE PROCEDURE test
AS
i number;
a varchar2(100);
b varchar2(100);
c varchar2(100);
BEGIN
for i in 1..12 loop
a:='M||i';
b:='hj_||i||m';
c:='zl_M||i';
update ydtjb_12m set a = b / c * 100;
commit;
end loop;
END;
ora-01732错误:data manipulation operation not legal on this view ,现请教出现这个错误的解决办法。
------解决方案--------------------
a:='M'||i;
b:='hj_'||i||'m';
c:='zl_M'||i;
ydtjb_12m是表还是视图 如果是视图看视图是否可以修改数据
另外你要保证你 拼接的a值 确实是ydtjb_12m里的一个列名
另外我想问你 你拼接的b,c 不会是ydtjb_12m里的列名吧
如果是 那就用
varchar2(100) str := 'update ydtjb_12m set '|| a || '=' ||b||'/'||c||'*100';
execute immediate str;