AFAIK ROWID w Oracle reprezentuje fizyczną lokalizację rekordu w odpowiednim pliku danych. W jakich przypadkach ROWID rekordu może się zmienić?Co może spowodować zmianę Oracle ROWID?
Znany mi jest UPDATE na partycjonowanym stole, który "przenosi" rekord na inną partycję.
Czy są inne przypadki? Większość naszych DB to Oracle 10.
Również UPDATEing (poprzednia wartość NULL, na przykład) może spowodować, że wiersz będzie wystarczająco duży, aby nie mógł być już umieszczony na bieżącej stronie. W aplikacji, w której występuje duża liczba UPDATE, prawdopodobnie byłoby to dość powszechne. –
Mike, to doprowadziłoby do łączenia łańcuchów. Widoczny rząd ROWID nie zmienia się, ale w rekordzie dostajemy wskaźnik do innego bloku, w którym znajduje się pełny rekord. –
Byłaby to migracja szeregowa, która ma miejsce, gdy wiersz staje się zbyt duży dla bieżącego bloku, ale jest wystarczająco duży, aby pomieścić się w jednym bloku. Łańcuchowanie występuje, gdy wiersz jest zbyt duży dla pojedynczego bloku. Ale masz rację, że wskaźnik do przeniesionego wiersza jest pozostawiony w oryginalnym bloku. –