0 oy
19 gösterim

oracle veri tabanında şöyle bir hata alıyorum. Cursor değerini getirmeye çalışırken

  • ORA-01002: fetch out of sequence  
 procedure ....
  cursor c is
      select *
        from TABLE t
       where t.column_a= 'PR'
         and t.column_b= p_parameter;

begin

    update TABLE t
       set t.column_a= 'PR'
     where t.column_a is null
       and t.column_b = p_parameter;

    for r in c
    loop

   ....  
    end loop;

  .........
Veri Tabanı kategorisinde (1.8k puan) | 19 gösterim

Önce tabloya bir update atmışsın, bu update commit edilmeden o update edilen kayıtlar üzerinde işlemler yapmaya başlamışsın.

Biraz araştırdığım zaman güzel bir açıklaması var.

Cause: This error means that a fetch has been attempted from a cursor which is no longer valid. 

Yani; artık uygunluğunu kaybetmiş bir cursor üzerinden kayıt çekmeye çalışmak ile yaşanacak sorundur.

Update işlemi ile for işlemi arasında bir commit atılmış olsa bu hatayı almazsın gibi geldi bana. Ama doğru çözüm müdür bilemedim.

Bu soruya cevap vermek için lütfen giriş yapınız veya kayıt olunuz.