본문 바로가기

분류 전체보기37

[Oracle] 오라클 시노님(Synonym) 사용방법(생성/조회/삭제) 시노님(Synonym) 이란? 데이터베이스의 객체는 생성 유저 기준으로 권한을 가집니다. 다른 유저가 해당 객체를 사용 및 참조하기 위해서는 다양한 방법이 있지만, 주로 시노님을 사용합니다. 시노님(Synonym) 생성 [문법] CREATE OR REPLACE [PUBLIC / PRIVATE] SYNONYM [시노님명] FOR [객체명] [예제] CREATE OR REPLACE SYNONYM EMP FOR DBTEST1.EMP; 시노님(Synonym) 조회 --해당 유저 SELECT * FROM USER_SYNONYMS --전체 조회 SELECT * FROM ALL_SYNONYMS ​ 시노님(Synonym) 삭제 시노님 삭제는 PRIVATE 시노님은 DROP SYNONYM, DROP ANY SYNONYM.. 2020. 3. 31.
[Oracle] 오라클 OVER() 함수 사용방법 (OVER() PARTITION BY ~ ) OVER 함수는 GROUP BY, ORDER BY를 이용하는 서브쿼리를 편리하게 대체하는 함수입니다. GROUP BY 대체이기 때문에 ROW_NUMBER(), COUNT(), MAX(), MIN(), SUM(), AVG(), RANK() 등의 분석 함수와 함께 사용됩니다. 그리고 OVER() 사용 시 GROUP BY와 비슷하지만 레코드의 수는 변함이 없습니다. [사용방법] ROW_NUMBER() OVER( PARTITION BY 컬럼명 ORDER BY 컬럼명 ) ※ PARTITION BY, ORDER BY 는 분석함수에 따라 한가지만 적을 수도 있고, 둘다 사용할 수 있습니다. ​ [사용예제] Q.부서코드 별 그룹핑하여 부서코드 빠른 순서 기준으로 순번을 주고 싶을 때 A. SELECT ROW_NUMBE.. 2020. 3. 31.
[Oracle] 오라클 LPAD, RPAD 함수 사용방법 (0, 공백 채우기) 오늘은 주로 공백, 0 등을 채울 때 사용하는 LPAD, RPAD 에 대해 알아봅시다. 주로 숫자형 데이터를 문자형으로 변환하고 그 문자길이를 똑같이 맞추기 위해 사용합니다. 함수명에서 알 수 있듯이 LPAD는 왼쪽, RPAD는 오른쪽부터 총길이 만큼 지정한 문자를 채웁니다. 예제를 보는게 가장 이해하기 쉽습니다. [사용법 ] LPAD('값', '총 문자길이' '채울문자') RPAD('값', '총 문자길이' '채울문자') [LPAD 예제] ※ EMPNO를 8자리로 맞추되 짧을 경우 앞에 '0'을 붙인다. (EMPNO의 값은 '123' 이다.) SELECT LPAD(EMPNO, 8, 0) FROM EMPLOYEE ==> 결과 : 00000123 [RPAD 예제] ※ EMPNO를 8자리로 맞추되 짧을 경우 .. 2020. 3. 31.
[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.