oracle DB를 사용하여 중이며 추가적으로 데이터를 조회해야 하는 작업이었다. 문제가 발생했던 쿼리를 임의의 테이블로 재구성 해보았고 아래와 같다. SELECT (SELECT Z.사용자명 FROM (SELECT U.사용자명 FROM 사용자_테이블 U WHERE U.사용자_소속 = P.상품_관리자_소속 order by U.로그인_일자 DESC ) Z WHERE Z.ROWNUM = 1) 가장 최근에 접속한 사용자 FROM 상품_테이블 P 쿼리를 간략하게 설명하자면 상품을 관리하는 사용자의 소속에서 가장 최근에 로그인한 한 명을 추출하는 쿼리이다 해당 쿼리를 실행하였을 때 표출되는 메시지는 아래와 같다. ORA-00904: "P"."상품_관리자_소속": invalid identifier 메시지를 그대로 읽..
발단 oracle DB 환경을 관리하던 중 DB서버 이동을 하게 되었음. 신규 서버에 oracle DB가 다시 세팅되고 며칠간 모니터링 수행 중 Tablespace 중 UNDOTBS 사용량이 아주 빠른 속도로 증가되는 것을 발견. 원인 파악을 하여 바로 조치하는 것이 제일 베스트이지만 당장의 서비스 운영을 위해서 임시조치로 해당 테이블스페이스를 증설한 상태에서 원인 파악에 들어갔음. 사전조사 및 참고자료 UNDOTBS(Undo Tablespace)란? 읽기 일관성을 유지하기 위해 사용되는 Tablespace로 데이터베이스 운영 중 많은 사용자들에게서 DML 작업이 이루어지는데 이때 Rollback하게 되는 경우를 대비하여 DML 작업이 발생했을 때 삭제 및 수정 이전의 값에 대한 정보를 UNDO Segm..
원인 작업하다가 아래와 같은 쿼리에서 의문점이 생김. 좌측 날짜와 시간을 나타내는 문자형 데이터(실제로는 테이블 데이터 비교하기 쉽게 직접 값 넣음)와 우측 현재 시스템 시간을 YYYYMMDD 형식으로 변환한 문자형을 비교하는데 보자마다 생긴 의문점은 자릿수와 날짜 형식이 다른데 어떻게 비교가 되는가 였고 더욱 의문점은 원하는 결과가 나왔다는 것이다. 문제의 쿼리 1 2 3 4 5 6 7 SELECT * FROM TABLE01 WHERE '20200101000000'
SQL 변수 종류 리터럴 변수 란? sql 구문 중 where절에 column과 비교되는 값이 상수값으로 직접 선언된 경우의 변수 예) SELECT * FROM TABLE01 WHERE COL01 = "TEST"; 바인드 변수 란? sql 구문 중 where절에 column과 비교되는 값이 바인드 변수 형태로 사용하는 경우의 변수 바인드 변수의 자리에는 parameter로 넘겨지는 값들이 대체됨. 예) SELECT * FROM TABLE01 WHERE COL01 :=1; PARSE 종류 HARD PARSE sql 구문을 수행 시 SGA - shared pool - Library Cache 영역에서 해당 구문이 존재 여부를 조회하여 존재하지 않는 경우 해당 구문의 문법 및 권한 검사, 테이블 및 컬럼 존재..
발단현재 사용 중인 DB는 oracle이며, 이미 생성되어 있는 테이블에 중국어 데이터를 insert 할 작업이 잡혔다.전달받은 중국어 데이터를 insert 후 정상적으로 데이터가 적재되었는지 확인하였으나실제 확인된 데이터는 ?(물음표)가 포함되어 있는 비정상적인 형태로 적재가 확인되었다. 직접 결과를 확인하며 진행하기 위해 select 쿼리 실행 후 결과를 보고 비교해보겠다.수행 쿼리 : select '服务' from dual; 결과 : 服? 이와 같이 중국어 데이터의 깨짐 현상이 보였다. 원인 분석참고로 중국어, 일어 등의 유니코드를 지원하지 않는 CharacterSet을 가진 DB에서 유니코드를 지원하기 위해 사용되는 CharacterSet으로 National CharacterSet 이 있다.Nat..
- Total
- Today
- Yesterday
- docker
- 컨테이너
- JSON
- Oracle
- 깨짐
- SSL
- Linux
- btye
- gradle
- web
- jQuery
- JPA
- WAS
- vscode
- SpringBoot
- 이벤트발생
- React
- jaxen
- Eclipse
- TLS
- mybatis
- SQL
- 날짜
- Git
- html
- spring
- parse
- IMAGE
- Windows
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |