목록오라클 (23)
말랑말랑제리스타일

설치된 토드 버전 확인하는 방법과 설치된 오라클 클라이언트 버전을 간단하게 확인하는 방법을 정리해 봤습니다. 오라클 클라이언트 버전 확인 방법 설치된 오라클 클라이언트 버전을 확인하는 방법은 정상적으로 오라클이 설치되어 있다면 생각보다 간단합니다. 커맨드 창을 열고 아무 위치에서나 아래 명령어를 입력하면 됩니다. tnsping 이렇게 입력하면 "TNS Ping Utility for " 어쩌고 문구가 나올 텐데요. 이 "for 뒤에 있는 게 설치된 오라클 클라이언트 버전입니다. 예를 들어 "TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0"이라고 나오는 경우 오라클 클라이언트 11.2의 윈도 32비트 버전이 설치되어있다고 볼 수 있죠. 토드 버전 확인 방법..

오라클 LIKE 절에서 언더바(_)나 퍼센트 문자(%)가 들어간 문자열을 조회하기 위해 탈출 문자를 사용하는 방법과 따옴표(')가 들어간 문자를 조회하는 방법입니다. ESCAPE 구문을 사용해 언더바(_)나 퍼센트 문자(%)가 들어간 문자열 조회 오라클에서는 ESCAPE라는 구문을 사용해 유저가 탈출 문자를 줄 수 있습니다. SELECT * FROM USER_SOURCE WHERE TEXT LIKE '%TESTA_DB%' ESCAPE 'A' 예를 들어 TEST_DB라는 문자가 들어간 프로시저를 조회할 때 이런 쿼리를 쓸 수 있는데요. A_를 LIKE 절에 넣고 뒤에 ESCAPE 'A'로 탈출 문자를 지정해주면서 TEST_DB라는 문자열이 포함된 프로시저를 조회할 수 있게 되는 거죠. 오라클에서 따옴표 들..

오라클에서 잘 쓰던 프로시저가 갑자기 "Ora-01839 : 지정한 월에 대한 날짜가 부적합합니다."라는 에러를 뱉는 경우가 생겼는데요. 이런 경우 Inverval month를 사용해서 날짜 연산을 한 경우일 수 있습니다. 이 에러가 발생하는 상황과 변경 쿼리에 관한 내용을 알아봅시다. 오라클에서 Interval month로 날짜 연산 시 에러 발생하는 상황 오라클에서 Interval month로 날짜를 계산할 경우 앞서 말한 것처럼 "Ora-01839 : 지정한 월에 대한 날짜가 부적합합니다."라는 에러가 발생할 수 있는데요. 이 에러가 발생하는 상황을 확인해보면 연산의 결과에 해당하는 날짜가 해당 월의 마지막 날을 지나는 경우 발생합니다. 예를 들어 5월 30일 기준으로 아래 쿼리를 실행했다고 합니다..

오라클에서 LISTAGG 기능을 사용해서 여러개의 ROW를 하나의 문자열로 합치는게 가능하죠. 그렇다면 반대로 하나의 문자열을 구분자로 분리해 여러개의 ROW로 뽑아내는 쿼리는 어떻게 만들 수 있을까요? 일단 오라클에서 기본적으로 LISTAGG와 반대의 기능으로 지원하는 함수는 없고 REGEXP_SUBSTR을 이용해 쿼리를 구성해줘야합니다. REGEXP를 이용해 생성한 LISTAGG와 반대로 작동하는 쿼리 LISTAGG로 만든 문자열은 대부분 콤마(,)로 구분되어있는 경우가 많은데요. 예를 들어 '1,2,3,4,5' 라는 문자열을 하나 만들어주고 이 문자열을 콤마로 구분해 각각의 ROW로 리턴하는 쿼리를 예시로 보여드리겠습니다. SELECT REGEXP_SUBSTR(NUMS,'[^,]+',1,LEVEL)..

오라클 DB를 사용하다 보면 간혹 대량의 데이터를 한 번에 INSERT 한 이후 속도가 저하되는 경우가 발생합니다. 다양한 이유가 있겠지만 SQL문이 아무 이상이 없고 INDEX도 올바른데 이런 현상이 나타나는 경우 테이블 ANALYZE 기능을 이용해볼 수 있습니다. 오라클에서 TABLE ANALYZE로 속도를 향상시킬 수 있는 경우 오라클에서 TABLE ANALYZE를 통해 속도를 향상시킬 수 있는 경우를 확인해보는 방법은 다음과 같습니다. 1. COUNT를 이용해 해당 테이블의 전체 ROW 수를 확인해봅니다. SELECT COUNT(*) FROM 테이블명 2. DBA_TABLES 테이블에서 해당 테이블의 데이터를 조회해봅니다. SELECT * FROM DBA_TABLES WHERE TABLE_NAME..

오라클에서 MERGE 구문이 익숙하지 않다면 사용 시 유의해야 될 점이 있는데요. 그 유의점 중 하나는 참조되는 열을 업데이트할 경우 발생하는 ORA-38104 에러를 방지하는 것입니다. 오라클 MERGE 구문 사용 방법 요약 오라클 MERGE 구문이 뭔지 모르고 사용하려는 분들은 아마 없겠죠. 어떤 테이블 내에서 조건에 해당하는 데이터 존재 유무에 따라서 UPDATE, DELETE, INSERT 등의 DML 구문을 사용하는 쿼리인데요. 사용 방법은 아래와 같이 간단하게 요약할 수 있습니다. MERGE INTO 조작할테이블 USING (참조할테이블) ON (조건절) WHEN MATCHED THEN --생략가능 (일치할 경우 UPDATE, DELETE 쿼리) WHEN NOT MATCHED THEN --생략..
오라클 SQL을 사용하다 보면 종종 따로 테이블에 없는 숫자를 출력하거나 조회해야 되는 경우가 있죠. 아래 쿼리로 오라클에서 1부터 10까지의 숫자를 출력할 수 있습니다. 오라클 1부터 10까지 출력하는 쿼리 SELECT LEVEL AS NUM FROM DUAL CONNECT BY LEVEL
ORACLE 함수 중 SUBSTR을 이용해서 문자열을 자르는 방법은 크게 2가지가 있고 세분화하면 4가지가 있을 수 있는데요. 이 방법들을 한번 알아보겠습니다. ORACLE SUBSTR 사용법 SUBSTR은 기본적으로 2개 또는 3개의 매개변수를 사용할 수 있습니다. SUBSTR(문자열, 시작할 위치, 자를 개수) 이런 방식으로 사용이 가능한데요. 여기서 자를 개수를 비우고 2개의 매개 변수만 사용하면 자동으로 시작 위치부터 끝까지 문자열을 자르게 됩니다. SELECT SUBSTR('ABCDEF',3,2) FROM DUAL; SELECT SUBSTR('ABCDEF',3) FROM DUAL; 이런 식으로 테스트해보면 첫 번째 ORACLE 쿼리의 결과는 3번째 글자부터 2개의 글자를 잘라서 'CD'가 나오고..