首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

存储过程中使用for出现ORA-01732解决方法

2012-01-18 
存储过程中使用for出现ORA-01732CREATE OR REPLACE PROCEDURE testASi numbera varchar2(100)b varchar2

存储过程中使用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;

热点排行
Bad Request.