본문 바로가기
반응형

Develop/CS38

[Oracle] SQL문으로 주말 구하기 🐱‍🐉 개요 날짜가 주어지면 이를 휴일인지 아닌지 구분해야 하는 문제를 겪었다. 공휴일은 보통 DB에 테이블을 따로 만들어서 관리하지만 주말은 굳이 그럴 필요 없이 SQL문으로 해결 가능하다. 🐱‍👤 주말 구하기 포인트는 주어진 날짜의 '요일'을 구하는 것이다. 해당 날짜의 요일을 구한 뒤, 토요일과 일요일인 경우만 조회하면 주말을 조회할 수 있다. Step 1 SELECT TO_CHAR(SYSDATE,'D') FROM DUAL; Step 1-1 : 날짜가 문자열 형태로 주어지는 경우 SELECT TO_CHAR(TO_DATE(:SEARCH_DATE),'D') FROM DUAL; Step 2 step 1의 쿼리문을 실행시키면 일요일부터 토요일까지 1 ... 7의 결과를 구할 수 있다. 이제 IN을 이용해 .. 2021. 8. 30.
[Oracle] ORA-01476: 제수가 0 입니다. 📌 ORA-01476: 제수가 0 입니다. 에러 ❓ 제수란? 나눗셈에서 어떤 수를 나누는 수 ex: '12 나누기 6은 2' 에서 제수는 6 💡 원인 발견 수학에서 어떤 수를 0으로 나누는 것은 불가능하다. SELECT SUM(컬럼1) / COUNT(컬럼2) 식으로 되어있다고 가정할때, COUNT(컬럼2) 값이 0일 경우 위와 같은 에러가 발생한다. 🎉 해결 방법 NVL(), NULLIF(), DECODE()와 같은 함수를 사용해 0일 경우를 다르게 처리하면 된다. 몇 가지 예시를 살펴보자. a는 10, b는 0일 경우에 a/b 결과를 구하는 SQL문이다. 10을 0으로 나누게 되므로 제수가 0이라는 에러가 발생할 것이다. SELECT a/b FROM (SELECT 10 AS a, 2 AS b FROM .. 2021. 8. 9.
[Mybatis] ResultMap 이용하기 📔 개요 현재 진행중인 프로젝트에서는 mssql, Oracle 등 다양한 종류의 database를 사용하고 있다. mssql에서 데이터 타입이 'ntext'인 컬럼을 조회하는 SQL문을 실행했는데 HashMap에 매핑되지 않는 현상이 발생했다. 원인 파악에 도움을 받았는데 Mybatis 설정 중에 varchar로 받아내게 하는 부분이 존재했고, ntext형식의 데이터를 varchar 형식으로 매핑하려니 문제가 생긴 것이다. 이를 어떻게 해결할까 고민하다가 resultMap을 이용하기로 했다. 📚 ResultMap이란? 복잡한 결과 매핑을 간편하게 만들어주기 위해 만들어진 태그다. 📕 예제 1 일반적인 Mybatis의 매핑 구문은 다음과 같다. select id, username, hashedPasswor.. 2021. 8. 2.
[Oracle] 인덱스에서 누락된 IN 또는 OUT 매개변수:: 📌 인덱스에서 누락된 IN 또는 OUT 매개변수:: 5 에러 ❓ 원인 필요한 매개변수가 존재하지 않기 때문 에러명 :: 숫자 2021. 8. 2.
[Windows] hosts 파일 수정하기 🤨 어쩌다 hosts 파일을 수정하게 되었나? 로컬에서 프로젝트를 실행하려는데 다음과 같은 에러가 떴다. Caused by: java.net.UnknownHostException: ~~~ 원인을 찾아보니 DNS 주소가 잘못되었거나 해당 주소로 접근할 수 없거나... 오류명 그대로 'unknown host', 알 수 없는 호스트이기 때문에 생긴 오류였다. 하지만 해당 주소는 다른 분들 로컬에서는 잘 돌아가고 있기 때문에 내 로컬에 문제가 있다고 판단했다. 매니저님께 문의를 드린 결과.. hosts 파일을 수정해야 한다고 하셨다. 💡 hosts 파일을 수정하는 이유 인터넷 창에 URL을 호스트 형태로 입력하면 DNS를 거쳐 IP주소로 접근하게 된다. ex: www.yeonyeon.tistory.com 입력 .. 2021. 7. 19.
[Mybatis] java.sql.SQLException: 해당 위치에 지원되지 않는 SQL92 토큰 에러 📌 Mybatis - java.sql.SQLException: 해당 위치에 지원되지 않는 SQL92 토큰 ( = java.sql.SQLException, CaughtExceptionMessage: Non supported SQL92 token at position: ) 📋 대부분의 경우 파라미터를 매핑하는 부분의 오타를 고치면 해결할 수 있다. #{temp} 이런 식으로 사용되어야 하는 부분이 {temp}, {#temp} 식으로 사용되면 발생하는 오류다. 📋 프로시저를 호출할 때 해당 문제가 발생할 경우, jdbc 드라이버 업데이트 {와 call 사이에 줄바꿈이나 tab 등을 제거 -- 잘못된 예 { call ~~ } -- 올바른 예 { call ~~ } 로컬 프로젝트도 아닌데 jdbc 드라이버를 막 바.. 2021. 7. 9.
[Linux] jdk 버전 여러개 사용하기 개요 가상 컴퓨터(Ubuntu)에서 java 8 버전을 사용하다가 이번에 11 버전도 설치하게 되었다. 다만, 여러 버전을 설치한 경우 환경 변수가 자동으로 바뀌진 않는지, 기존 프로그램들에는 영향이 없을지 등이 마음에 걸려서 찾아보게 되었다. 목차 현재 JAVA 버전 jdk 설치 방법 Alternatives 1. 현재 JAVA 버전 다음 명령어를 통해 현재 JAVA 버전을 확인할 수 있다. $JAVA_HOME의 경우, 엄밀히 말하자면 버전을 확인하는 명령어는 아니고 "JAVA_HOME"이라는 환경 변수에 어떤 값이 들어가있는지 확인할 수 있다. $ java -version //자바 버전 확인 $ $JAVA_HOME // 환경변수 확인 2. jdk 설치 방법 일단 현재 설치되어있는 java 목록부터 알아.. 2021. 4. 14.
특정 포트에 대해 방화벽 오픈 되어있는지 확인하기 회사에서 고객사로 특정 도메인에 대해 특정 포트 방화벽 오픈 요청 했는데 잘 오픈 되었는지 확인해보려고 한다. 고객사 서버에 원격 접속을 한 뒤, cmd 창을 통해 쉽게 확인할 수 있었다. telnet 명령어를 이용하면 서버에서 방화벽 오픈 되어있는지 확인이 가능하다. $ telnet [서버 ip] [서버 port] ex: telnet yeonyeon.tistory.com 8080 telnet 사용이 불가능한 경우 ▼ 더보기 1. Windows Windows 기능 켜기/끄기에서 텔넷 클라이언트 체크 후 사용 가능 2. Linux telnet 설치 명령어 입력 $ yum install telnet 로컬에서 테스트한게 아니라 화면을 캡쳐할 수는 없지만... 포트가 잘 오픈되어 있다면 도메인에 접속되어 까만색.. 2021. 3. 18.
[AWS RDS] Mysql에서 variables 설정 바꾸기 variables 설정 바꾸는 방법이 궁금해서 포스팅에 들어온 사람이라면 바로 2번을 보면 된다. 나는 MariaDB 환경에서 사용했지만 Mysql에서도 똑같이 이용 가능하다. Unknown column in 'field list' ... 라는 에러가 발생해서 확인해봤더니, 테이블 명이 자꾸 대소문자가 구분되어 여러번 생성 삭제하는 과정 중에 필드명을 잘못 입력한 것 같다. 존재하지 않는 필드 명을 찾으니까 Unknown column이란 에러가 뜬 듯 하다. 처음부터 다시 생성하기 전에, posts나 POSTS나 같은 이름으로 인식하게 하려고 한다. 대소문자를 구분 설정을 없애는 여러 방법을 찾았다. 'lower_case_table_names'를 1로 설정하면 된다. 1. 파라미터 그룹 편집 RDS 인스.. 2021. 3. 11.
반응형