오라클 rowid

참조 : 오라클 rowid 정의 활용법(https://m.blog.naver.com/PostView.nhn?blogId=kimsajang&logNo=220507834231&proxyReferer=https%3A%2F%2Fwww.google.com%2F)

oracle에서 rowid는 인덱스를 생성하기 위한 가상의 컬럼이다. rowid를 사용해서 update를 할 수도 있는데 toad와 같이 클라이언트 프로그램에서 쿼리로 조회하면 보이지 않는데 이때는 ROWIDTONCHAR(A.ROWID) 와 같이
ROWIDTONCHAR () 함수를 사용한다.

 
CREATE TABLE BBS (
    ID VARCHAR2(10)     NOT NULL,
    NAME VARCHAR2(20)   NOT NULL,
    AGE NUMBER
);

INSERT INTO BBS ( ID, NAME, AGE )
VALUES ('A1', '수지', 23);

SELECT ROWIDTONCHAR(B.ROWID) AS ROW_ID
     , ID, NAME, AGE
  FROM BBS B;

ROWIDTONCHAR(B.ROWID)로 조회한 ROWID값을 이용하여 UPDATE를 실행할 수 있다. 여기서 ‘AADkOdAAsAAD4FVAAB‘는 실제 DB에서 조회한 ROWID값이다.

 
UPDATE BBS B SET 
    ID = 'A2'
  , NAME = '강수지'
  , AGE = 32
 WHERE B.ROWID = 'AADkOdAAsAAD4FVAAB'
;