JDBC-5074:Given string does not represent a number in proper format.
정말 화나는 티베로 버그이다. 인터넷을 검색해보면 오라클은 날짜 자동 형변환해주고, 티베로는 안해줘서 생기는 오류라고 나온다. 이런 경우에도 분명 JDBC-5074가 발생한다.
그러나! 아래와 같이 쿼리를 짰다고 가정하자
INSERT INTO TB_WORKS_USER_CATEGORY
SELECT
TB_WORKS_USER_CATEGORY_SEQ.NEXTVAL AS USER_CATEGORY_ID
,T.*
,'' MOD_USER
,'' MOD_DATE
FROM
(SELECT
T1.USER_ID AS USER_ID
,'WORKS_CM_BASIC' AS USER_CATEGORY_NAME
,'UCTYPE1000' AS USER_CATEGORY_TYPE
,1 AS ORDER_LEVEL
,(SELECT USER_ID FROM TB_USER_MST WHERE USER_NAME='admin' AND ROWNUM = 1) REG_USER
,TO_TIMESTAMP_TZ(TO_TIMESTAMP(SYSTIMESTAMP), 'YYYY.MM.DD HH24:MI:SS.FF3') REG_DATE
FROM
(SELECT USER_ID FROM TB_USER_MST WHERE USE_CODE = 'USE0001') T1
WHERE NOT EXISTS
(SELECT USER_ID FROM TB_WORKS_USER_CATEGORY WHERE USER_CATEGORY_TYPE='UCTYPE1000' AND USER_ID=T1.USER_ID)
) T;
REG_DATE DATA_TYPE은 정상이고, MODI_DATE는 NULL 허용으로 해서 문제가 없이 insert 가능하다!
사실상 이 쿼리는 문제가 없어야 하는게 맞다! 하지만 JDBC-5074가 발생한다.
이 오류의 해결방법은 INSERT 할 테이블의 컬럼을 명시해주면 해결된다
INSERT INTO TB_WORKS_USER_CATEGORY
-- (USER_CATEGORY_ID, USER_ID, USER_CATEGORY_NAME, USER_CATEGORY_TYPE, ORDER_LEVEL, REG_USER, REG_DATE, MOD_USER, MOD_DATE)
SELECT
TB_WORKS_USER_CATEGORY_SEQ.NEXTVAL AS USER_CATEGORY_ID
,T.*
,'' MOD_USER
,'' MOD_DATE
FROM
(SELECT
T1.USER_ID AS USER_ID
,'WORKS_CM_BASIC' AS USER_CATEGORY_NAME
,'UCTYPE1000' AS USER_CATEGORY_TYPE
,1 AS ORDER_LEVEL
,(SELECT USER_ID FROM TB_USER_MST WHERE USER_NAME='admin' AND ROWNUM = 1) REG_USER
,TO_TIMESTAMP_TZ(TO_TIMESTAMP(SYSTIMESTAMP), 'YYYY.MM.DD HH24:MI:SS.FF3') REG_DATE
FROM
(SELECT USER_ID FROM TB_USER_MST WHERE USE_CODE = 'USE0001') T1
WHERE NOT EXISTS
(SELECT USER_ID FROM TB_WORKS_USER_CATEGORY WHERE USER_CATEGORY_TYPE='UCTYPE1000' AND USER_ID=T1.USER_ID)
) T;
뭐 이것도 관점에 따라 다르게 보면 날짜 형변환을 안하는 티베로 특성이라고 볼 수 도 있겠지만
공백은 좀 더 다른 개념인데다가, 컬럼을 명시하면 오류가 발생하기 때문에 버그가 맞는것 같다.
'Data Layter > TIBERO' 카테고리의 다른 글
DB 날려먹었는데, sys 스키마 하위 데이터가 없을때 (0) | 2022.11.11 |
---|---|
Error (TBR-12033) : Lock acquisition failed in nowait mode (0) | 2020.08.26 |
5072: Failure converting NUMBER to or from a native type. (0) | 2020.08.10 |
pk unique index 삭제 (0) | 2020.07.31 |
Tibero_tibero is stopped or disabled. Please confirm the service state or event logs (Application / System) (0) | 2020.02.21 |