반응형

Oracle 6

[Oracle] SELECT UPDATE 문 작성 방법

UPDATE "UPDATE_TABLE" A SET A.COLUMN = (SELECT B.COLUMN FROM "SELECT_TABLE" B WHERE B.JOIN_COLUMN = A.JOIN_COLUMN ) WHERE A."COLUMN " = "VALUE"; 단순 SELECT UPDATE문의 경우 위 항목에서 JOIN_COLUMN부분만 제거 하면된다. 위 방법은 UPDATE하려는 TABLE과 SELECT TABLE의 JOIN이 필요한 SELECT UPDATE문이다. 위 방법을 사용하게된 상황은 게시판 마이그레이션 할때 게시글을 내용을 대량으로 조회하여 INSERT 할때 시간이 너무 오래 걸려 DB LOCK이 걸리는 상황이 발행하여 이관이 안되었어다. 여러 방법이 있겠지만 게시판 마이그레이션 시 먼저 IN..

SQL 2023.10.03

계층형 구조란?

계층형 구조(Hierarchical Structure)는 부모와 자식 간의 관계를 깊이로 구분하여 표현하는 것으로 트리구조, 보통 카테고리를 분류나 조직도에 많이 사용된다. 개발자들이 흔히 사용하는 Visual Studio나 이클립스와 같은 IDE의 Project 탐색기, 폴더의 탐색기에도 사용된다. 일반적으로 RDBMS에서는 행(Row) 단위로 데이터가 조회되어 다른 행과의 관계를 나타내는 계층형 구조를 조회하기 힘들다. 하지만, WITH문을 이용하면 계층형 구조의 데이터를 조회할 수 있다. Oracle은 10g버전부터 CONNECT BY문 을 이용하여 계층형 쿼리를 만들 수 있고, 11g R2 버전부터 Recursive Subquery Factoring 기능이 추가되어 WITH문으로 재귀가 가능하게 ..

SQL 2021.05.20

[Oracle]TOCHAR 사용 날짜변환 예제

오라클에서 쿼리문을 작성할 때 TO_CHAR() 함수는 날짜, 숫자 등의 값을 문자열로 변환하는 함수이다. 자주 사용하는 기본 함수이므로 아래의 다양한 변환 방법을 알고 있으면 많은 도움이 된다. 날짜 포맷 변경 (YYYY-MM-DD) SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') --20200723 , TO_CHAR(SYSDATE, 'YYYY/MM/DD') --2020/07/23 , TO_CHAR(SYSDATE, 'YYYY-MM-DD') --2020-07-23 , TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') --2020-07-23 11:10:52 FROM dual YYYY: 년, MM: 월, DD: 일, HH24: 24시간, HH: 12시간, MI: 분,..

SQL 2021.03.22

[Oracle]데이터 날려먹었을때 복구방법

오라클에서 DELETE나 UPDATE 후에 COMMIT을 잘못할때가 있습니다. 그럴때에는 아래처럼 대처해주면됩니다. 1. DB 설정 확인 - 오라클 관리자로 커맨드 접속 - SHOW PARAMETER UNDO 여기서 undo_retention 은 update나 delete가 아닌 commit을 하였을때부터 경과한 초까지 저장한다는 뜻이다. 예를 들어 900 / 60 = 15분 이다. 이 시간은 alter system set undo_retintion = 1800 으로 변경이 가능하다. 2. 복구하기 - 15분 전의 데이터 조회하기 (원하는 시간으로 바꿔서 조회가 가능하다) SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '15' MINUTE) - 현재..

SQL 2020.06.30
반응형