개요 서브쿼리를 사용하면 FROM 절에서 특정 테이블을 지정하는 것이 아닌, 서브쿼리의 결과값을 테이블로 지정할 수가 있다. select a.id, b.name from ( select * from tableA ORDER BY id) a join tableB b on a.id = b.id 회사 업무 중 이 FROM절에 서브쿼리를 적용하고 내부에서 ORDER BY 통해 정렬을 하도록 쿼리를 짰는데,이 서브쿼리를 수행한 결과가 ORDER BY 지정한대로 정렬이 되지 않았다. 원인 및 해결 공식문서를 찾아보니, mysql 에서는 서브쿼리의 레코드 순서를 보장하지 않는다고 한다. https://mariadb.com/kb/en/why-is-order-by-in-a-from-subquery-ignored/ Why ..
Trouble Shooting
에러 내용 Oracle 접속 할 때 아래와 같이 에러가 발생하며 접속이 안되는 오류가 발생했다. - 에러 내용 : ORA-12560: TNS:protocol adapter error 원인 및 해결 오류를 확인해보니 기동한 서버의 오라클 관련 서비스를 실행하지 않아서 오류가 발생한 것이었다. 1. 내컴퓨터 -> 컴퓨터 관리 -> 서비스 클릭 2. OracleServce 등 3개의 서비스 실행 3. 서비스 실행하고 다시 접속 시 아래와 같이 해결된다
이슈내용 UPDATE문에서 테이블을 JOIN 후 값을 업데이트 해주는 쿼리를 짜는 중에 SET 절에 조인한 테이블을 집계하는 부분에서 에러가 발생했다. 원인 및 해결 검색해서 찾아보니 WHERE 절이나 SET절 같은 곳에서는 집계함수를 사용할수 없다고 한다. 그래서 JOIN하는 테이블을 서브쿼리로 변경하고 내부에서 집계함수를 사용하는 방법으로 변경했다.
이슈내용 Clone / Pull 을 통해 git 로컬 저장소 생성 시 403 에러와 함께 로그인 실패하는 이슈 발생했다. 구글링 해서 찾아보니 08/13일 부로 계정 비밀번호 대신 토큰을 사용하도록 정책이 변경되었다. 해결 비밀번호 대신 토큰을 사용해 로그인 하면 된다. 토큰 생성 방법은 아래 순서대로 진행하면 생성할 수 있다. 1. 계정 로그인 -> Settings 2. Developer settings -> Personal access tockens -> Generate new token 클릭 3. 토큰명 / 유효기간 / 스코프 설정(repo)
이슈내용 Spring recacy 프로젝트에서 톰캣 서버 구동시 아래와 같은 에러메시지와 함께 구동 실패하는 이슈가 발생했다. 해결방법 특정 클래스가 있는 라이브러리가 WEB-INF/lib 내에 존재하지 않아서 발생하는 에러였다. intellij에서는 기본적으로 라이브러리를 /lib에서 관리하는데 톰캣에서 라이브러리를 가져오는 경로가 /lib가 아닌경우 에러가 발생하게 된다. 나의 경우에는 WEB-INF/lib가 루트경로였기 때문에, 위의 클래스가 포함되어있는 라이브러리를 /lib 폴더에서 WEB-INF/lib 아래로 추가해서 이슈를 해결했다. 1. File -> Project Structure (Ctrl+Alt+Shift+S) 2. Project Settings > Artifacts 클릭 3. 추가하고..
이슈사항 Mybatis의 xml 매퍼에서 choose문을 사용해 데이터를 가져오는 중 아래와 같은 에러가 발생했다. Error querying database. Cause: java.lang.NumberFormatException: For input string: \"M\"\r\n 해결 오류가 발생한 쿼리 when 절에 " 비교대상 =='값' " 이런식으로 큰 따옴표 안에 작은따옴표로 값을 비교했다. 그런데 이 방식으로 하면 비교가 안되기 때문에, 아래 같은 방식을 사용해야한다. 1. ' 비교대상 == "값" ' 이런식으로 작은 따옴표로 감싸고 큰따옴표로 값을 감싸서 비교 2. ' 비교대상.equals("값") ' 이런 기능을 통해 비교