DB이관(11)
-
자바로 파일변환 및 쿼리문 txt생성!
##기존에 다른 동료가 하는 프로젝트에서 DB를 부분이관을 진행했는데 파일다운로드에 오류가 발생했다.. 알고봤더니 기존로직은 리눅스 서버에 파일업로드를 할 경우 한글파일이든 영어든 모두 임시의 값으로 변환되어 서버에 저장이되는데(ex 보통 안겹치기위해 날짜+randomString->20210915_abcdefg 와 같은형태) 한글로 가져와서 한글파일을 못찾는 사태가 발생했다. 모두가 그런게 아니고 새로 가져온부분만 안되기때문에 한글에대한 설정을 서버에 맞춰서 해보기보단 기존껄 자바에서 재 가공해서 넣기로함. 특정 폴더에 있는 파일만 오류를 발생시켰으므로 그 폴더에 있는파일 데이터만 Java에서 뽑아내고 SELECT * FROM table WHERE DELETE_YN = 'N' AND FILE_FOLDER..
2021.09.15 -
JAVA – Value ‘0000-00-00’ can not be represented as java.sql.Timestamp 에러해결
갑자기 db데이터를 바꾼뒤 로그인하려는데 해당오류가 발생하였다. 동일한 상황을 겪은 사람의 블로그를 보고 해결했다. 해당페이지에서 convertToNull옵션값을 추가했더니 정상적으로 로그인이 됨. 지금 사용하는 db의경우 deldt 가 해당한다고 떴는데. 기본값을 null로 가지고있음에도 떴음. 기본값이 0000-00-00 00:00:00이 아님. ##의문점## 기본값이 설정 되어있는게 0000-00-00 00:00:00 값이 아닌경우인데도 해당 오류가 발생하니..참 알다가도 모르겠다. 1. 문제상황 > mysql의 DATETIME컬럼에 접근시 에러가 발생하였다. * 에러메시지 Value '0000-00-00' can not be represented as java.sql.Timestamp 2. 문제해..
2021.09.15 -
MariaDB my.cnf 파일설정
캐릭터셋,인코딩관련 설정만 볼때 아래 명령어 사용 show variables like 'c%'; 각종설정 보는 명령어 show variables; 파일위치의 경우 리눅스 기준으로(그냥 apt-get이나 자동설치 방식일 경우) /etc/mysql/my.cnf 에 존재함 해당파일에 한번에 설정도 가능하고 각각 conf파일마다 설정도 가능함. Utf8 설정 [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] character-set-client-handshake = FALSE init_connect = "SET collation_connection = utf8_general_ci" init-connect = 'SET N..
2021.09.15 -
MariaDB 데이터 insert오류관련 개인정리
Utf8일때 오류발생했던 부분정리했던 것들이다. 보통 다 UTF8로 덕지덕지 하기때문에 당연히 새로 설치한 MariaDB에 기본적인 설정값들 또한 utf8로 했었다.. 하지만 그게 문제가 될 줄이야..ㅠㅠ 결국 결론을 먼저 말하자면 utf8 --> utf8mb4 로모두 변경하였다. utf8mb4은 간단하게 utf8의 상위호환으로 보면된다. ##기타오류들## ID값이 TNGLAB 인 사용자가 2명 존재해서 PRIMARYKEY 관련해서 제대로 안들어가는듯함. 기본적으로 mysql은 대소문자 구별을 안하는형태임 Select * from member where id ='tnglab'; 수행한경우 pk값이 없을때 대문자,소문자 2개 다 나왔었음. `ID` varchar(60) binary NOT NULL COMM..
2021.09.15 -
Oracle, mariaDB 차이점 정리
오라클에서 마리아DB로 이관하면서 아래에 정리된 차이점을 정말정말 많이 봤다.. Oracle과 MySql 쿼리문 문법 비교 Oracle에 익숙한 필자는.. 이번 프로젝트에서 생전 처음으로 MariaDB를 쓰면서 MySql 문법을 익혀야 했다. 지금부터 알게된 모든 차이점들을 하나씩 하나씩 차근차근 적어나갈 생각이다. 규칙은, 기준이 Oracle이고 그 비교되는 Mysql 문법을 아래에 적는다. 1. 공백치환 함수 ( NVL -> IFNULL ) Oracle : SELECT NVL('컬럼명', '') FROM DUAL; MySql : SELECT IFNULL('컬럼명', '') FROM DUAL; 2. 현재 날짜시간 Oracle : SYSDATE Mysql : NOW() 3. 날짜포멧 Oracle : TO..
2021.09.14 -
Oracle With구문 ->Mysql 변환
처음에는 무조건 안되는줄 알고 with구문을 변경하려고 난리를 쳤었다.(ㅠㅠ내 시간) 해당 버전확인이 먼저 되어야할듯함. 8.0이후에서는 with구문을 동일하게 사용가능. MySQL 8.0 이전 버전에서는 WITH 구문이 지원되지 않기 때문에 WITH 구문을 변환하려면 다음 선택지 중 하나를 택할 수 있다. Temporary Table(임시 테이블) Derived Table Inline View 본 글에서는 inline view를 이용하여 Oracle WITH 구문을 변경해 볼 것이다. WITH 구문을 Inline View로 변환하는 예제 편의상 간단한 쿼리를 예제로 들었다. ℹ️Oracle WITH: WITH SAMPLE_WITH AS (SELECT ID FROM SAMPLE_TBL) SELECT A...
2021.09.14