PLSQL为循环游标提供了where current of语句的功能,用来避免二次定位游标记录,以提高程序效率。
在此之前,我们已经在做类似的事情,使用的方法是用rowid来定位,因此看到有where current of语法的时候,就想到一个问题:WHERE CURRENT OF与ROWID定位的性能哪个高?
做个实验看看。100万+的数据,分别用where current of和rowid做update
这里在cursor定义时必须加for update,否则会报
PLS-00404: cursor 'CUR_T' must be declared with FOR UPDATE to use with CURRENT OF
实验表明,用rowid比where current of效率要高,反复多次实验都是这个结果。