首页 > Linux操作系统 > Linux操作系统 > 一条更新语句的三种写法
第一种写法
update t1 set object_name = lower(object_name);
第二种写法
BEGIN
FOR x IN (SELECT ROWID rid, object_name, ROWNUM r
FROM t2)
LOOP
UPDATE t2
SET object_name = LOWER (x.object_name)
WHERE ROWID = x.rid;
IF (MOD (x.r, 100) = 0)
THEN
COMMIT;
END IF;
END LOOP;
COMMIT;
END;
第三种写法
DECLARE
TYPE ridarray IS TABLE OF ROWID;
TYPE vcarray IS TABLE OF t2.object_name%TYPE;
l_rids ridarray;
l_names vcarray;
CURSOR c
IS
SELECT ROWID, object_name
FROM t2;
BEGIN
OPEN c;
LOOP
FETCH c
BULK COLLECT INTO l_rids, l_names LIMIT 100;
FORALL i IN 1 .. l_rids.COUNT
UPDATE t2
SET object_name = LOWER (l_names (i))
WHERE ROWID = l_rids (i);
COMMIT;
EXIT WHEN c%NOTFOUND;
END LOOP;
CLOSE c;
END;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12712263/viewspace-606614/ ,如需转载,请注明出处,否则将追究法律责任。