복붙노트

[SQL] 어떤 변화에 오라클 ROWID를 일으킬 수 있습니다?

SQL

어떤 변화에 오라클 ROWID를 일으킬 수 있습니다?

오라클의 AFAIK ROWID는 적절한 데이터 파일의 레코드의 물리적 위치를 나타냅니다. 하는 경우는 변경 될 수 있습니다 기록의 ROWID?

나에게 알려진 하나는 분할 된 테이블에 업데이트입니다 "이동"다른 파티션에 기록.

또 다른 경우가 있습니까? 우리 데시벨의 대부분은 오라클 10입니다.

해결법

  1. ==============================

    1.당신이 말했듯이, 그것은 다음과 같은 행이 물리적으로 디스크에 이동 언제, 발생

    당신이 말했듯이, 그것은 다음과 같은 행이 물리적으로 디스크에 이동 언제, 발생

    인덱스 구성 테이블의 경우, 기본 키에 대한 업데이트는 당신에게 다른 ROWID를 줄뿐만 아니라 것입니다.

  2. ==============================

    2.1 @WW

    1 @WW

    여담으로:

    (트리 분할 노드 또는 가입 할 때) 행의 물리적 위치가 테이블 업데이트시 변경 될 수 있기 때문에 인덱스 구성 테이블에 대한 ROWID는 (그들이 UROWID라고, 내가 믿는) 다릅니다.

    인덱싱 여전히 가능하게하기 위해, UROWID 만료 될 수 후자의 "논리 ID '(기본 키), 및"아마도 물리적 ID "(일반 ROWID)를 포함한다.

  3. ==============================

    3.또 다른 하나는 WW에,하지만 조금 여분을 추가 ...

    또 다른 하나는 WW에,하지만 조금 여분을 추가 ...

    구동 질문은 나중에 사용하기 위해의 ROWID를 저장 할 수 있는지 여부를 경우, 나는 "하지 마"말할 것입니다.

    후속 작업을 수행하는 데에의 ROWID의 세트를 수집 - 예를 들어, -하지만 당신은 테이블에서의 ROWID를 저장하지 그들은 이후에 사용하는 것이 괜찮을거야 생각 안 괜찮을가 트랜잭션 내에서의 ROWID를 사용할 수 있습니다 데이트.

  4. from https://stackoverflow.com/questions/435109/what-can-cause-an-oracle-rowid-to-change by cc-by-sa and MIT license