728x90

오라클DB에 날짜형식의 데이터들을 넣었는데 비워져있다면 NULL로 나와야 할 것들이(정상부분) 비정상 부분처럼 다 0000-00-00 00:00:00 으로 나오기 시작했다.
null로도 넣어보고 None으로도 넣어보고 Nope(ㅎㅎ)으로도 넣어보고 Nan까지 다 해봤는데 안되길래 너무 화가 났는데..
How to set to NULL a datetime with 0000-00-00 00:00:00 value?
I need to change a few values on my DB. I forgot to set nullable to the table and it set to 0000-00-00 00:00:00 by default. Now I need to convert that value in NULL. The field type is Datetime. ...
stackoverflow.com
이런 글을 발견하게 되었다.
일단 해당 컬럼을 null이 가능하도록 바꾸고, 그이후에 0000-00-00 00:00:00 으로 된 컬럼을 null로 업데이트 하라는 것!
-- 열을 NULLABLE로 수정
ALTER TABLE 테이블 MODIFY COLUMN 비정상 DATETIME NULL;
set sql_safe_updates=0;
-- 이후 0000-00-00 00:00:00으로 된 것들을 null로 update
UPDATE 테이블 SET 비정상 = NULL WHERE 비정상 = '0000-00-00 00:00:00';
이렇게 하니까 성공했다
굿
728x90
'DBMS > Oracle' 카테고리의 다른 글
| [ORACLE] ORA-32034 : 지원되지 않는 WITH 절 사용 오류 해결하기 (0) | 2022.07.15 |
|---|