업무

[업무] ROWIDTOCHAR vs CHARTOROWID

박도비 2024. 11. 8. 14:18
728x90

오라클에서 입력된 행을 식별자 정보로 ROWID를 생성하고 부여했다.

ROWID는 시스템 데이터로 저장되기 때문에 컬럼값은 보이지 않지만 중복되지 않는 유일한 값을 가지고 있다.

 

기존에 ID값이 10으로 동일한데 비교하는 값이 없어 ROWID를 이용해서 가져왔고

비교하기 위해 SELETE CHARTOROWID(ROWID) AS ROWID로 값을 조회했는데 

로컬에서 연결했을때는 제대로 보이는 데이터가 운영에서보면 500에러가 계속 떨어짐 

 

근데 이유가 CHARTOROWID가 아닌 ROWIDTOCHAR 으로 받아야한것이였음

 

CHARTOROWID : CHAR, VARCHAR2, NCHAR, NVARCHAR2형의 값을 ROWID로 변한

문자로 저장된 ROWID값을 다시 ROWID형식으로 사용하고한다. 

 

ROWIDCHAR : ROWID를 18크기의 VARCHAR2형으로 변환

테이블 특정레코드 ROWID값을 문자로 변환할때 사용한다. 

 

해서 JSON으로 CHARTOROWID 값을 가져오다보니 확인이되지않음

그래서 ROWIDCHAR 가져오니 제대로 데이터값이 끌고와졌다

 

ROWIDTOCHAR 는 ROWID를  문자로 변환하고 CHARTOROWID는 문자를 ROWID로 변환하니 데이터값을 가져와서 문자로 변환하는 ROWIDTOCHAR를 사용해야했던 것이다. 

 

 

728x90