개발/DB 55

[oracle Like In 절] 오라클 LIKE를 IN절처럼 사용하는 방법 (IN-LIKE 구현 팁)

개인정보가 들어있는 데이터를 수정하기위해in 절로 데이터를 찾고 있었다.그러나 나오지 않는다. 해당 개인정보가 포함되어있기 때문이다오라클 like를 in 절처럼 사용할 수 있을까? 조사해 보았다.오라클 LIKE를 IN절처럼 사용하는 방법 (IN-LIKE 구현 팁)오라클(Oracle)에서 IN 절은 특정 값 목록을 조회할 때 자주 사용됩니다. 하지만 LIKE 연산자와는 직접 호환되지 않기 때문에, 다음과 같은 구문은 사용할 수 없습니다:-- 잘못된 문법 예시WHERE column_name LIKE IN ('%가%', '%나%', '%다%') -- ❌ 오류 발생그렇다면, LIKE 조건을 다수 적용하여 IN 절과 유사한 효과를 내는 방법은 무엇이 있을까요?아래에서 SQL 실무에서 유용하게 쓰이는 4가지 방법을..

개발/DB 2025.08.10

[Oracle Blob Maping] Cause: java.sql.SQLException: 부적합한 열 유형

Oracle BLOB 매핑 오류 해결 가이드에러가 발생했다. 에러 없는 세상에서 살고 싶다.이상하다 로컬에서는 에러가 나지 않던게 서버에 적용시키니까 에러가 난다.Blob 데이터를 select 할때 에러가 난다.오류 내용을 살펴 보자.💥 오류 내용org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [99999]; error code [17004]; Cause: java.sql.SQLException: 부적합한 열 유형: getString not implemented for class oracle.jdbc.driver.T4CBlobAc..

개발/DB 2025.07.16

[Oracle 문법 merge into] 문법, 예제, 활용도에 대해 기록

Oracle MERGE INTO 문법 정리프로젝트를 진행하며 merge into절이 있어이번기회에 정리해 봅니다.설명Oracle의 MERGE INTO 절은 UPSERT (Update or Insert) 작업을 수행할 때 사용됩니다.즉, 대상 테이블에 해당 데이터가 존재하면 UPDATE, 존재하지 않으면 INSERT 합니다.✅ 기본 문법MERGE INTO target_table tgtUSING source_table srcON (tgt.key_column = src.key_column)WHEN MATCHED THEN UPDATE SET tgt.col1 = src.col1, tgt.col2 = src.col2WHEN NOT MATCHED THEN INSERT (col1, col2, col3) ..

개발/DB 2025.07.09

오라클 BETWEEN과 LIKE 스캔 범위를 비교 해보자

안녕하세요. 개발을 하다보니 이제 평소 쓰는 문구들이 궁금해 지기 시작했습니다. 앞선 포스팅에서는 in절과 '=' 구문에 대해 알아보았습니다. [개발/DB] - 오라클(oracle) 등 DB에서 IN절과 '=' 개념 차이 확인 오늘은 between과 like 스캔 범위를 알아보겠습니다. between이 더 명확한 표현법임에도 불구하고 like를 사용하는 이유는 편해서이다. 물론 저도 like를 주로 사용합니다. 이렇게 말이죠. select * from 테이블 where 일자 like '2022%' and 상품 = B ; select * from 테이블 where 일자 between '202201' and '202212' and 상품 = B ; 결론부터 말씀드리면 like 보다는 between을 사용하는게..

개발/DB 2022.08.31

오라클(oracle) 등 DB에서 IN절과 '=' 개념 차이 확인

안녕하세요. DB 쿼리를 사용할때 '='를 사용하는 경우와 IN절을 사용하는 경우가 있으신가요? 저는 대부분 여러개의 키를 잡을때 IN절을 사용하기는하는데, 가끔 귀찮으면 '='와 혼용해서 사용하기도 합니다. 그래서 문득 차이점이 궁금해 공부해보고자 합니다. 저는 책 '친절한 SQL 튜닝'을 참고하였습니다. 다음과 같은 쿼리가 있다. select * from 고객별가입상품 where 고객번호 = 'cust_no' and 상품 id in ('01', '03', '05') 인덱스를 '상품id+고객번호' 순으로 생성하면, 같은 상품은 고객번호 순으로 정렬된 상태로 하나의 블록에 지정된다. 반면, 고객번호 기준으로는 같은 고객번호가 상품id에 흩어진 상태가 된다. 인덱스가 이렇게 구성되어 있다면, 상품ID 조건..

개발/DB 2022.08.30

[oracle] 오라클 view 생성 등 기초 알아보기(view, mview)

안녕하세요.오라클을 몇년간 사용하면서 view를 그냥 생각없이 사용만 해왔습니다.이참에 제대로된 개념과 설명을 기록해두고자 합니다. View란 무엇일까? - 가상의 테이블을 의미 - 데이터가 없고 SQL만 저장되어 있으며, 사용자가 접근 시 View에 들어 있던 SQL이 수행되어 결과 도출 다른 책이나 정보를 보면 메뉴판의 개념을 생각하라고 합니다.사용자가 메뉴판을 보고 주문 시 그때 주방에서 음식을 만들어 제공한다는 개념과 같다는 말입니다. View의 장점은 무엇이 있을까? - View를 사용하면 사용자가 View에 접근 하는 순간 원본 테이블의 데이터를 가져오기때문에 데이터가 정확함 → 접근하는 순간 데이터를 가져오기때문에 제약조건이나 인덱스등을 생성할 수 없음 - 어떤 결과를 조회하기위해 6개의 테..

개발/DB 2020.06.10

[oracle] synonym(동의어) 생성 및 삭제

안녕하세요.오랜만에 오라클 관련 포스팅을 해보겠습니다.오늘의 포스팅 주제는 synonym(동의어) 입니다. 대부분 '시노님'이라고 부릅니다. synonym 이란? - 테이블에 붙이는 별명으로 보안상, 사용자 편의성 때문에 생성함 synonym 생성 문법create [public] SYNONYM synonym이름for [schema.] 객체 ; ※ synonym 생성 권한이 가지고 있는 계정으로 해야함 grant create [public] synonym To 계정 synonym도 오브젝트이므로 만든 사람만 사용 가능합니다.다른 사용자도 쓸 수 있게 하려면 public 키워드를 사용해서 생성해야 합니다.아래의 명령어로 모든 사용자들이 사용할 수 있는 synonym을 생성합니다.☞ create public ..

개발/DB 2020.06.09

[오라클(oracle)] join update 힌트로 해결

안녕하세요. 테이블 2개를 사용하여 데이터를 update 할 경우가 많죠.저는 예전에 postgre에서 사용하던게 머리에 남아서....무심코 오라클에서 join update를 사용하였더니 에러가 나더라고요. 에러 내용입니다.SQL 오류: ORA-01779: cannot modify a column which maps to a non key-preserved table01779. 00000 - "cannot modify a column which maps to a non key-preserved table"*Cause: An attempt was made to insert or update columns of a join view which map to a non-key-preserved table.*Ac..

개발/DB 2020.03.04

[oracle]오라클 시퀀스(sequence) 생성 및 삭제

안녕하세요.오라클 시퀀스에대해 포스팅하려고 합니다.시퀀스의 기능은 워낙 유명해서 모두 알고 계실거라고 생각합니다. 시퀀스란?연속적인 일련번호를 만들어주는 기능 입니다. 주로 사용자의 번호나 사번 등으로 주로 활용됩니다.간단하게 사용 문법만 기재하겠습니다. 문법create sequence 시퀀스 이름increment by n ------> 시퀀스 증가 값(기본 1), -1로 설정하면 감소하는 시퀀스임start with 1 ------> 시퀀스 시작 값maxvalue 100000 ------> 시퀀스 최대값(다른옵션 : nomaxvalue)minvalue 1 ------> cycle일 경우 새로 시작되는 값(다른옵션 : nominvalue)cycle ------> 시퀀스 번호 순환 설정 (다른옵션 : noc..

개발/DB 2019.12.03

[오라클] 인덱스의 주의사항 및 관리방법(쿼리문 확인)

안녕하세요.앞서 인덱스의 개념과 종류에 대해 알아보았습니다.[개발/DB] - [오라클] 인덱스의 원리 및 개념과 종류(B-TREE, BITMAP INDEX) 오늘은 인덱스의 주의사항과 실습을 통하여 인덱스의 관리법을 알아보고자 합니다. 인덱스의 주의사항인덱스를 생성하면 속도가 빨라지는 것은 사실이나용도에 맞게 인덱스를 생성하여 사용해야 합니다.그렇지 않으면 Full Table Scan보다 느려지는 경우도 종종 있습니다. 1) DML 쿼리문 주의 사항 ○ insert 작업을 할 경우에 INDEX Split 현상이 발생할 수 있습니다. → INDEX Split로 인해 속도가 느려질 수 있습니다. 기존 블록에 여유 공간이 없는 상황에서 새로운 데이터가 들어오게 되면 기존 블록의 내용 중 일부를 새 블록에 기록..

개발/DB 2019.12.03