목록데이터베이스/Oracle SQL (33)
말랑말랑제리스타일

기존에 토드 10.6 버전을 사용하다가 2022년 12월 기준 최신 버전 토드 16.2로 업그레이드를 하게 되었는데요. 최초로 유저 세팅을 변경하는 경우는 Copy User Setting으로 Export 해서 진행하면 되지만 이전 설치할 때도 유저 세팅을 복사해서 사용했다면 Copy User Setting 버튼이 안 보일 수 있습니다. 이런 경우 해결책 알려드립니다. 토드 기존 버전 유저 세팅 확인 방법 우선 토드 새로 설치하기에 앞서 기존에 사용하던 토드의 유저 세팅 폴더를 확인해줘야겠죠. Default 설치 폴더 기준 C드라이브 유저 폴더의 AppData-Roaming-Quest Software-Toad for Oracle 폴더로 들어가 주면 사용하던 버전이 보이죠. 저 같은 경우 토드 10.6 버전..

오라클에서 MERGE 구문이 익숙하지 않다면 사용 시 유의해야 될 점이 있는데요. 그 유의점 중 하나는 참조되는 열을 업데이트할 경우 발생하는 ORA-38104 에러를 방지하는 것입니다. 오라클 MERGE 구문 사용 방법 요약 오라클 MERGE 구문이 뭔지 모르고 사용하려는 분들은 아마 없겠죠. 어떤 테이블 내에서 조건에 해당하는 데이터 존재 유무에 따라서 UPDATE, DELETE, INSERT 등의 DML 구문을 사용하는 쿼리인데요. 사용 방법은 아래와 같이 간단하게 요약할 수 있습니다. MERGE INTO 조작할테이블 USING (참조할테이블) ON (조건절) WHEN MATCHED THEN --생략가능 (일치할 경우 UPDATE, DELETE 쿼리) WHEN NOT MATCHED THEN --생략..

Oracle SQL에서 간혹 다른 컬럼을 우선순위로 지정해서 특정 값을 가져와야할 경우가 있습니다. 예를 들어서 급여가 가장 높은 사원의 사번을 가져오는 경우라던지 가격이 가장 높은 제품의 제품 코드를 가져오는 경우가 있겠죠. 이런 경우 급여나 가격을 기준으로 사번과 제품 코드를 가져와야하는데 서브쿼리를 사용하면 많이 복잡해지죠. 서브쿼리를 사용해 다른 컬럼을 우선순위로 값을 가져오는 방법 그럼에도 쿼리가 상당히 단순한 경우 서브쿼리를 이용하는 방법도 존재하기 때문에 이론적으로 쉽게 이해할 수 있는 서브쿼리를 사용해 다른 컬럼을 우선순위로 값을 가져오는 쿼리를먼저 알려드리겠습니다. 아래 예시는 어떤 제품의 가격타입별로 가격이 들어있는 테이블에서 가격 타입이 가장 낮은, 쉽게 말해 어떤 제품 A에 대해 a..
오라클 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'가 나오고..
오라클 SQL문 중 NULL을 처리하는 다양한 구문이 있는데 그 중 가장 대표적인 DECODE, NVL,NVL2의 사용법과 차이점을 알아봅시다.DECODE,NVL,NVL2 사용법먼저 DECODE와 NVL과 NVL2의 사용법입니다. 엄연히 말하면 DECODE는 NULL 처리용 함수는 아니지만 DECODE를 이해하면 NVL과 NVL2를 이해하기 훨씬 쉽기 때문에 DECODE의 사용법 먼저 설명드립니다.DECODE 사용법DECODE의 구문은 아래와 같습니다.DECODE(값,비교값,일치할 경우,불일치할 경우)만약 이 DECODE를 다중으로 사용할 경우 아래의 형태로도 사용 가능합니다.SELECT DECODE(VAL,'1','T1','2','T2','T3') FROM (SELECT '1' AS VAL FROM D..
오라클 주석처리 방법 오라클에서 주석처리 방법은 크게 두가지가 있고 사용 방법은 간단합니다. -- 커맨드로 한줄 전체 주석처리가 가능합니다. /* 와 */로 묶어서 여러줄로 된 단락 전체 주석처리가 가능합니다. SELECT 1 FROM DUAL; --1을 조회한다 /*1을 dual 테이블에서 조회한다 이렇게 단락 전체를 주석처리 할 수 있다.*/ 주석처리 및 주석해제 단축키의 사용 오라클 DB를 사용해보면 생각보다 주석처리와 해제하는 상황이 빈번합니다. 이럴 때주석처리와 주석해제를 할때마다 매번 입력해주기는 생각보다 번거롭기 때문에 단축키를 사용하게 됩니다. 여기서 가장 자주 사용되는 오라클 SQL 편집툴인 토드와 오라클 Developer 기준으로 설명드리겠습니다. 토드에서 주석처리 단축키 토드에서는 단..

[ERR0000]ORA-01861: literal does not match format string Oracle DB를 프로그램에서 쓰다 보면 정말 자주 발생하는 Oracle 에러 중 하나입니다. 이 Oracle 에러가 상당히 골치아픈 이유는 토드나 SQL 디벨로퍼에서 쿼리로 실행하면 발생하지 않는데 프로그램에서 프로시저로 호출시 발생하기 때문이죠. 그럼 자세히 Ora-01861 에러의 발생 원인과 처리 방법을 알아보겠습니다. 1. Ora-01861 에러의 발생 원인 텍스트에 나온 것처럼 문자열이 포맷 스트링과 매칭되지 않는 에러입니다. 제가 이 Ora-01861 에러 많이 봤는데 발생 원인의 90프로가 날짜형을 문자열 형과 비교할 때 발생했습니다. Oracle DB에서 날짜 데이터를 Varchar2(..