[DB / Tibero / JDBC-5072 / Failure converting NUMBER to or from a native Type]
ER-WIN에서 외래키 설정을 잘못하는 바람에 기존에 작성한 스키마들을 모두 날려야하는 상황이 생겼다.
그래서 데이터 삭제하고 Casecade 걸고 모두 다 삭제 하면 되겠지? 하고 쿼리 실행을 눌렀는데 오류가 발생했다.
JDBC-5072 : Failure converting NUMBER to or from a native Type.
쿼리 실행하기 전에 분명히 데이터도 다 날리고 delete를 실행 했는데 뭘까...
구글링을 해보니 티베로 오류라고 한다.
(역시... 구글이 최고의 선생님이다...)
원인은 _DD_TBL 테이블의 ROW_CNT가 NUMBER가 아닌 Null로 설정되어있기 때문에 오류가 나타난 것이다.
✅ Solution
1. Sys내의 테이블을 수정해야 하는 작업이므로, root 계정에 접속하여 작업을 진행한다.
2. 오류가 난 테이블의 object_id를 검색한다.
select object_id from dba_objects where object_name = (table_name);
3. 찾은 object_id를 기준으로 row_cnt를 0으로 세팅한다.
update sys._dd_tbl set row_cnt = 0 where obj_id = (검색된 object id);
4. 삭제하고자 하는 테이블의 소유 계정에 접속 후 테이블을 삭제한다.
drop table (테이블명);
✅ 후기(?)
다행이도, 위 방법을 통해 table을 삭제할 수 있었다.
오라클 쓸땐, 이런 문제가 없었는데 티베로를 사용할 땐 종종 이런 원인 모를 이유가 자주 발생한다.
그리고 오라클은 참조할 수 있는 레퍼런스가 많은데 티베로는 사용하는 기업들이 적다보니, 그에 따른 레퍼런스가 부족하다...
그럼에도 공부할 수 있는 기회가 많아져서 좋은 것 같긴하다. 하지만 경우가 너무 많다보니 업무 진행 속도가 느려지는건 좀 우려스럽다...😩
다음엔 티베로에 대한 글을 한번 써 봐야겠다.
암튼 잘 해결되서 다행! 👏👏👏