본문 바로가기

오라클/기타

ROWID

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kimsajang&logNo=220507834231

 

ROWID 정의

ROWID ORACLE에서 INDEX 생성하기 위하여 내부적으로 사용하는 PSEUDOCOLUMN 으로 사용자가 임으로 변경하거나 삭제 없다.

●단지 테이블의 컬럼처럼 참조만 가능하며 데이터베이스에 값이 저장되지 않는다.

ROWID 물리적인 ADDRESS 가지고 있기 때문에 SINGLE BLOCK ACCESS 찾고자 하는 ROW 찾을 있어 물리적인 ROWID 주어진 테이블에 가장 빠른 ACCESS 방법을 제공하게 된다.

 

ROW ID 분석해보면

AAAArs /AAD / AAAAUa / AAA

----------   ------  ------------- ---------

      1           2            3               4

  1. 6자리 : 데이터 오브젝트 번호 (data object number)

- 오브젝트의 고유 번호

  1. 3자리 : 상대적 파일번호 (relative file number)

- 각각의 데이터파일에 할당되는 번호

  1. 6자리 : 블록 번호 (block number)

- 데이터 블록의 위치를 알려주는 번호

  1. 3자리 : 블록 내의 번호 (row number)

- 오라클 블록의 헤더에 저장된 row directory slot 위치를 알려주는 고유 번호

 

 

ROWID 이용하는 방법

ROWID ROW 물리적인 주소값이다.

이값은 오라클 데이터베이스내에서 유일한 값이다.

, PK가없는 테이블에서 중복된값이 있더라도 ROWID

서로 다르기때문에 중복된값을 걸러낼때 사용할 있다.

 

ROWID 형변환 FUNCTION

ROWIDTOCHAR(ROWID)

--ROWID 문자형으로 바꿔준다.

CHARTOROWID(ROWID)

--문자형을 ROWID 바꿔준다.
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=salinokl&logNo=220209561274
 

DBMS_ROWID SQL문장이나 PSM 수행하여 얻은 ROWID 담긴 정보를 보거나 임의의 ROWID 만들기 위한 패키지이다.

 

 

DBMS_ROWID.ROWID_OBJECT(FB_ROWID)

--ROWID OBJECT_NUMBER 반환한다

DBMS_ROWID.ROWID_TYPE(FB_ROWID)

--

DBMS_ROWID.ROWID_ROW_NUMBER(FB_ROWID)

 

DBMS_ROWID.ROWID_TO_ABSOLUTE_FNO(FB_ROWID)

'오라클 > 기타' 카테고리의 다른 글

ASKTOM  (0) 2022.10.03
트랜잭션  (0) 2022.09.01