개요
Rowid 값을 이용하여 데이터의 Block Number를 확인하는 방법에 대해 설명 합니다. 해당 방법은 DBMS_ROWID 패키지를 통해 확인할 수 있습니다.
방법
DBMS_ROWID 패키지 이용
Rowid로 Blocknumber를 찾기 위해서는 DBMS_ROWID 패키지를 사용합니다.
•
dbms_rowid.rowid_absolute_fno 함수는 주어진 rowid에서 파일의 번호를 반환하는 함수입니다.
•
dbms_rowid.rowid_block_number 함수는 주어진 rowid에서 파일 내의 블록의 번호를 반환하는 함수입니다.
•
dbms_rowid.rowid_row_number 함수는 주어진 rowid에서 블록 내의 로우의 번호를 반환하는 함수입니다.
사용 예시
아래는 간단한 예제를 통해 rowid로부터 파일 번호, 블록 번호, 로우 번호를 조회하는 방법을 볼 수 있습니다.
drop table test;
create table test(n number);
insert into test values (1);
commit;
select rowid,
dbms_rowid.rowid_absolute_fno(rowid) "fno",
dbms_rowid.rowid_block_number(rowid) "bno",
dbms_rowid.rowid_row_number(rowid) "rno" from test;
SQL
복사
실행 결과 예시
SQL> select rowid,
2 dbms_rowid.rowid_absolute_fno(rowid) "fno",
3 dbms_rowid.rowid_block_number(rowid) "bno",
4 dbms_rowid.rowid_row_number(rowid) "rno"
5 from test;
ROWID fno bno rno
------------------ ------- ------- -------
AAAAadAACAAAABAAAA 2 64 0
1 row selected.
SQL
복사