Oracle使用伪列ROWID快速更新表的多行

--创建一个对象具有多个同义例子,如下:
DECLARE
CURSOR c1 IS SELECT ename, job, rowid FROM emp where ename='BLACK';
--
m_ename emp.ename%TYPE;
m_job emp.job%TYPE;
m_rowid UROWID; --UROWID可以存储物理、逻辑或外来rowid,区别于rowid
--
BEGIN
OPEN c1;
LOOP
--
FITCH c1 INTO m_ename, m_job, m_rowid;
EXIT WHEN c1%NOTFOUND;
UPDATE emp SET sal = sal * 1.05
WHERE rowid = m_rowid;
--
COMMIT;
END LOOP;
--
CLOSE c1;
END;

 

你可能感兴趣的:(Oracle)