我有更新查询
UPDATE tablename
set column1 = 'value1', column2= 'value2', column3= 'value3'
where column4 = 'value4
我需要修改以上语句:
在oracle11g中可以吗?我们怎样才能实现它?
写了一个SQL程序:
DECLARE
fromCount number(10) := 0;
toCount number(10) := 0;
BEGIN
LOOP
toCount := fromCount + 5000;
UPDATE tablename
set column1 = 'value1', column2= 'value2', column3= 'value3'
where column4 = 'value4 AND ROWNUM > fromCount AND ROWNUM < toCount;
COMMIT;
IF toCount=500000 THEN
EXIT;
END IF;
END LOOP;
END;
执行它需要1个多小时。我怎样才能提高它的性能?
答案 0 :(得分:0)
您可以使用'和rownum&lt; = 500000'条件。但问题是,您不会知道哪些记录已更新,哪些记录未更新。