MySql 서버8 이후 버전의 경우 기본 time_zone관련 설정이 되어 있지 않아 기존에 많이 사용하던 url형식으로 접속 하는 경우
time_zone 관련 에러가 발생 됩니다. 

mysql에 접속 해서 아래의 명령어를 실행 하면

SELECT @@GLOBAL.time_zone, @@SESSION.time_zone, @@system_time_zone;

와 같은 결과가 나오는걸 확인 할 수 있습니다.

global설정은 system설정을 따르게 되어 있고 session(접속시)설정도 system설정을 따르게 되어 있는데

system은 아무 설정도 되어 있지 않습니다.(���ѹα� ǥ�ؽ�) 이 경우 에러가 발생되고

jdbc url에 serverTimeZone설정을 추가 해주면 정상적으로 접속이 가능 하게 됩니다.

접속 정보에 아래와 같이 serverTimeZone을 명시 해주면 됩니다.(serverTimezone=UTC, serverTimezone=Asia/Seoul)

jdbc:mysql://localhost:3306/test_db?characterEncoding=UTF-8&serverTimezone=UTC

 

또는 mysql서버에 system 및 session접속시 사용할 time_zone정보를 my.ini파일에 아래와 같이 명시 할 수 도 있습니다.

default-time-zone='+9:00'

my.ini 설정은 mysql서버를 재기동 해야 적용이 됩니다.(+9:00 은 서울 지역의 시간대 입니다. GMT+9시간)

 

 

반응형

'DB > MY-SQL' 카테고리의 다른 글

MYSQL 프로시저 오류 실행 오류  (0) 2022.02.28
mysql datetime 0000-00-00 00:00:00  (0) 2022.02.22
Error Code: 2006 - MySQL server has gone away  (0) 2017.01.18
jdbc연결시 한글 인코딩 문제  (0) 2017.01.18
mysql recource설정시 옵션  (0) 2016.12.20
Posted by 질주하는구
,

컬럼에 포함된 문자의 수를 알고 싶을때 사용하는 쿼리 입니다.

기준은 mysql이지만 거의 모든 DBMS에 변환 가능 합니다.

 

SELECT TRUNCATE((LENGTH(COLUMN1)-LENGTH(REPLACE(COLUMN1, ' ', '')))/LENGTH(' '), 0)

 

COLUMN1에 포함된 ' ' 공백의 갯수를 구하는 조건 입니다.

LENGTH(COLUMN1)-LENGTH(REPLACE(COLUMN1, ' ', '') 전체 글자수-공백을 제거한 글자수

/LENGTH(' ') 나누기 공백의 글자수(2글자 이상일 경우를 위해서 추가한 부분 입니다. 1글자 라면 없어도 됩니다.)

TRUNCATE(,0) 소수점 버리고 나머지

 

 

반응형

'DB' 카테고리의 다른 글

DB 랜덤 함수  (0) 2015.03.05
도로명/지번 우편번호 디비 구축  (0) 2014.09.25
Posted by 질주하는구
,

프로시저 실행 중 아래와 같은 오류가 발생되는 경우 

 

Error Code : 1329 No data - zero rows fetched, selected, or processed

 

데이터를 찾지 못해서 발생되는 에러로 해당 하는 상황에 맞게 아래와 같이 작업 해줘야 합니다.

 

DELIMITER $$

DROP PROCEDURE IF EXISTS `PROC_TEST_WORK`$$

CREATE PROCEDURE `PROC_TEST_WORK`()
BEGIN
 	DECLARE done INT DEFAULT 0;	
	DECLARE v_column1 VARCHAR(12);
	DECLARE v_column2 VARCHAR(12);
	DECLARE v_column3 VARCHAR(10);
	
 	
	DECLARE c1 CURSOR FOR
		SELECT 	AA.COLUMN1,
				AA.COLUMN2,
				AA.COLUMN3				
			  FROM TEST_TABLE AA
	
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

	OPEN c1;

	data_loop: LOOP

		FETCH c1 INTO v_column1, v_column2, v_column3;
			IF done = 1 THEN
				LEAVE data_loop;
			END IF;
			
			
			CALL PROC_LOG(CONCAT ( '데이터갱신 v_column1: ' ,v_column1, ', v_column2', v_column2));
			
	END LOOP data_loop;

	CLOSE c1;
END$$

DELIMITER ;

위의 코드 중 

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

이 부분이 에러와 관련된 부분으로 done 변수의 값을 HANDLER FOR NOT FOUND 데이터를 찾지 못하는 상황이

발생되면 1로 변경하고 

loop문 안에서 

IF done = 1 THEN
   LEAVE data_loop;
END IF;

그런 상황이 발생되면 작업을 하지 않고 빠져 나오게 설정 해줍니다.

다른 분들이 올린 내용을 보면 DECLARE done INT DEFAULT FALSE 로 설정하고

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

IF done THEN 으로 설정 하는 경우도 있는데 동일한 동작을 하게 됩니다. (1=true, 0=false)

이런 작업을 진행 후에도 동일한 에러가 발생 된다면 해당 쿼리문이 정상 동작 하는지 여부를 체크 하는게 좋습니다.

전 database charset설정이 맞지 않아 한글이 깨지며 오류가 발생된 경우가 있었습니다.

반응형

'DB > MY-SQL' 카테고리의 다른 글

MySql 8.x serverTimezone 에러  (0) 2022.03.21
mysql datetime 0000-00-00 00:00:00  (0) 2022.02.22
Error Code: 2006 - MySQL server has gone away  (0) 2017.01.18
jdbc연결시 한글 인코딩 문제  (0) 2017.01.18
mysql recource설정시 옵션  (0) 2016.12.20
Posted by 질주하는구
,

mysql datetime 항목에 데이터 형식에 맞지 않는 데이터를 넣어도 등록이 되는경우 

데이터를 가지고 올때 sql 관련 에러가 발샐될 수 있습니다.

관련 문구의 내용중 '0000-00-00 00:00:00'에 해당하는 문구가 나오는 경우

datetime 항목에 '' 이나 0으로 빈값이 들어간 경우 입니다.

입력된 내용은 null로 초기화 해줘야 하고 더이상 이런식의 데이터가 입력 되지 않게 

mysql sql_mode의 설정에 NO_ZERO_DATE 관련 내용이 추가 되어야 합니다.

 

https://blog.jiniworld.me/64

 

[MySQL] sql_mode로 알아보는 시스템 변수 permanent, runtime설정

MySQL 서버에서는 운영에 필요한 구성설정에 이용되는 다양한 시스템 변수가 존재합니다. MySQL 서버의 버전에 따라 각 시스템 변수는 기본값이 존재하고, 별도의 설정을 통해 값을 변경할 수 있습

blog.jiniworld.me

 

반응형

'DB > MY-SQL' 카테고리의 다른 글

MySql 8.x serverTimezone 에러  (0) 2022.03.21
MYSQL 프로시저 오류 실행 오류  (0) 2022.02.28
Error Code: 2006 - MySQL server has gone away  (0) 2017.01.18
jdbc연결시 한글 인코딩 문제  (0) 2017.01.18
mysql recource설정시 옵션  (0) 2016.12.20
Posted by 질주하는구
,

JOIN USING 사용

DB/ORACLE 2021. 12. 1. 10:49

join 조건 사용시 on 절에 조인 조건의 쿼리문이 긴 경우 using를 이용해서 간략하게 작성 할 수 있습니다.

 

select t.region_name, t.team_name, t.stadium_id, s.stadium_name

from team t inner join stadium s on (t.stadium_id = s.stadium_id)

 

라는 문구를 using를 사용하는 경우 아래와 같이 작성 할 수 있습니다.

 

select t.region_name, t.team_name, t.stadium_id, s.stadium_name

from team t inner join stadium s using (stadium_id)

 

반응형
Posted by 질주하는구
,

오라클 재귀쿼리문 작업시 사용하는 connect by 쿼리문 안에서 특정 컬럼 기준으로 정렬을 해야 하는 경우

 

strt with dept_id = '0'

connect by dept_id = parent_dept_id

order siblings by view_order asc

 

형식으로 작성 해줘야 합니다.

반응형

'DB > ORACLE' 카테고리의 다른 글

JOIN USING 사용  (0) 2021.12.01
oracle lpad, rpad 문자 채우기  (0) 2021.11.19
테이블 정보 확인(데이터 개수, 용량)  (0) 2021.07.28
Sqldeveloper .sql 문 실행  (0) 2019.07.18
oracle to_char 숫자->문자 변환시 fm사용  (0) 2018.05.28
Posted by 질주하는구
,

oracle key 생성시 특정한 길이를 맞춰야 하는경우 lpad+시퀀스 를 이용해서 데이터를 생성 할 수 있습니다.

select 'D'||lpad(시퀀스,7,'0') from dual
-> D0000001

lpad(데이터, 자리수, 채움문자) 형식으로 지정 해주면 특정 자리수를 유지하는 문자 코드를 만들어 낼 수 있습니다.

rpad는 오른쪽 부터 채우기 때문에
D1000000 와 같이 출력 되게 됩니다.

반응형

'DB > ORACLE' 카테고리의 다른 글

JOIN USING 사용  (0) 2021.12.01
connect by + order siblings by  (0) 2021.11.29
테이블 정보 확인(데이터 개수, 용량)  (0) 2021.07.28
Sqldeveloper .sql 문 실행  (0) 2019.07.18
oracle to_char 숫자->문자 변환시 fm사용  (0) 2018.05.28
Posted by 질주하는구
,

ORACLE에서 테이블의 데이터 개수 및 용량을 확인 하기 위한 쿼리문

 

--개수(NUM_ROWS=통계테이블에 있는 정보, num_rows2=COUNT결과)

SELECT TABLE_NAME, NUM_ROWS,

         TO_NUMBER(dbms_xmlgen.getxmltype('SELECT COUNT(*) c FROM '||TABLE_NAME).Extract('//text()') num_rows2

FROM USER_TABLES

ORDER BY TABLE_NAME ASC

 

--용량(MB기준)

SELECT SEGMENT_NAME, BYTES/1024/1024||'MB'

FROM USER_SEGMENTS

WHERE SEGMENT_TYPE='TABLE'

ORDER BY SEGMENT_NAME ASC

반응형

'DB > ORACLE' 카테고리의 다른 글

connect by + order siblings by  (0) 2021.11.29
oracle lpad, rpad 문자 채우기  (0) 2021.11.19
Sqldeveloper .sql 문 실행  (0) 2019.07.18
oracle to_char 숫자->문자 변환시 fm사용  (0) 2018.05.28
DBMS_LOB.SUBSTR ora-06502 발생  (0) 2017.11.16
Posted by 질주하는구
,

cubrid jdbc maven 추가

DB/CUBRID 2020. 9. 14. 15:58

 cubrid
 http://maven.cubrid.org/

저장소 추가 및

 cubrid
 cubrid-jdbc
 9.3.2.0016

원하는 드라이버 버전을 작성
반응형
Posted by 질주하는구
,

.

반응형
Posted by 질주하는구
,