En markör kör effektivt en SELECT och låter dig sedan iterera över resultatuppsättningen, som hålls i en ögonblicksbild av DB-tillståndet. Eftersom din resultatuppsättning redan har hämtats kommer den inte att påverkas av UPDATE-satsen. (Att hantera saker annars skulle kräva att du kör frågan igen varje gång du flyttade fram markören!)
Se:
http://www.techonthenet.com/oracle/cursors/declare.php