본문 바로가기

개발/오라클15

[Oracle] 오라클 조건절/CASE구문/DECODE구문 오늘은 오라클 쿼리에서 사용할 수 있는 조건절인 CASE 구문과 DECODE 구문의 사용방법을 알아보겠습니다. 쿼리 내에 조건절을 사용할 수 있는 대표적인 방법으로는 CASE 구문과 DECODE 구문이 있는데요, 지극히 개인적인 제 판단으로는 CASE구문이 좀 더 가독성이 좋더라구요. 그래서 간단한 조건절의 경우 DECODE를 사용하고 조금 복잡한 조건식이 들어갈 경우 CASE를 사용합니다. [CASE 구문] CASE WHEN [조건식1] THEN [결과1] WHEN [조건식2] THEN [결과2] ... ELSE [ELSE 결과] END [DECODE 구문] DECODE([비교컬럼], [조건1], [결과1], [조건2], [결과2], … , [ELSE 결과] ) ​ ​ 예제를 통해 좀 더 자세히 알아보.. 2020. 3. 31.
[Oracle] 오라클 날짜 포맷/날짜 연산/ 날짜 계산 ​ [날짜 포맷] SELECT SYSDATE AS BASIC , TO_CHAR(SYSDATE, 'YYYY.MM.DD') -- 년월일 , TO_CHAR(SYSDATE, 'YYYY.MM.DD HH:MI:SS') -- 년월일 시분초 (12시) , TO_CHAR(SYSDATE, 'YYYY.MM.DD HH24:MI:SS') -- 년월일 시분초 (24시) , TO_CHAR(SYSDATE, 'YYYY.MM.DD PM HH:MI:SS ') -- 년월일 오전오후 시분초 , TO_CHAR(SYSDATE, 'YYYY.MM.DD DY HH:MI:SS') -- 년월일 요일 시분초 (금) , TO_CHAR(SYSDATE, 'YYYY.MM.DD DAY HH:MI:SS') -- 년월일 요일 시분초 (금요일) FROM DUAL; [날.. 2020. 3. 31.
[Oracle] 오라클 MERGE 구문 사용 예제 ​ 안녕하세요. 오늘은 MERGE 구문을 살펴볼겁니다. ​ MERGE 구문은 시스템에서 INSERT, UPDATE 를 한번에 사용하게 해주는 구문이며, DB에서 INSERT와 UPDATE를 구분해주므로 ​소스에서 이 데이터가 INSERT인지 UPDATE 인지 구분할 필요가 없어 소스의 가독성을 높여줍니다. 즉, 개발자는 비지니스 로직에만 집중할 수 있도록 도와 줍니다. ​ 이해하기 쉽도록 이미지로 설명을 하였습니다. 아래 이미지 참고하시면 됩니다. 소스는 아래쪽에 있습니다. ​ ​ MERGE INTO EMPLOYEE C --INSERT, UPDATE 할 기준 테이블 USING ( SELECT USERNO , USERNAME , ADDRESS , PHONE FROM EMPLOYEE_TEMP WHERE IN.. 2020. 3. 31.
[Oracle] 오라클 SUBSTR(문자열 자르기) / INSTR(문자열위치) 응용 오라클의 자주 사용하는 문자열 자르기 함수인 SUBSTR과 문자위치를 세는 INSTR을 이용하여 특정 문자열로 자르는 예제를 학습하겠습니다. 1. SUBSTR을 사용하여 문자열 자르기 [문법] SUBSTR('자르기할 문자열[text]', 시작위치[number], 길이[number]) [예제] SELECTSUBSTR('가나다라', 0, 2) FROM DUAL [결과] ==> '가나' 2. INSTR를 이용한 문자열 찾기 [문법] INSTR('대상문자열[TEXT]', '찾을문자열[TEXT]') [예제] SELECT INSTR('가나다라', '다') FROM DUAL [결과] ==> 3 3. SUBSTR과 INSTR를 이용한 특정문자열 기준 자르기 위 두 함수를 이용하여 특정 문자열로 자를 수 있습니다. 다양.. 2020. 3. 31.
[Oracle] 오라클 테이블 컬럼 추가/수정/삭제/컬럼명 변경(ALTER 테이블ADD/MODIFY/DROP/RENAME) 1. 테이블 컬럼 추가하기(ALTER TABLE ADD) [문법] ALTER TABLE 테이블명 ADD(컬럼명 데이타타입(사이즈)); ex) USER라는 테이블에 USER_NAME이라는 컬럼을 VARCHAR2(13) 타입으로 추가할 때 -> ALTER TABLE USER ADD(USER_NAME VARCHAR2(13)); ※ 컬럼 추가 시 코맨트도 추가 해 주어야 겠지요? 1-1. 코멘트 추가 COMMENT ON COLUMN [테이블명].[컬럼명] IS '[Comment]'; ​ 2. 테이블 컬럼 수정하기(ALTER TABLE MODIFY) [문법] ALTER TABLE 테이블명 MODIFY(컬럼명 테이타타입(사이즈)); ex) USER라는 테이블에 USER_AGE 라는 컬럼을 NUNBER(3) 타입으로.. 2020. 3. 31.
[Oracle]오라클 LOCK 조회 및 해제 1. 간단하게 LOCK 확인 SELECT OBJECT_ID , SESSION_ID -- SID , ORACLE_USERNAME , OS_USER_NAME FROM V$LOCKED_OBJECT ; 2. LOCK 발생된 SID, SERIAL, OBJECT 확인 SELECT A.SID , A.SERIAL , object_name , A.SID || ', ' || A.SERIAL# AS KILL_TASK FROM V$SESSION A INNER JOIN V$LOCK B ON A.SID = B.SID INNER JOIN DBA_OBJECTS C ON B.ID1 = C.OBJECT_ID WHERE B.TYPE = 'TM' ; 3. LOCK 세션 해제 ALTER SYSTEM KILL SESSION '401, 1276.. 2020. 3. 31.