본문 바로가기
반응형

IT/ORACLE52

[ORACLE] 오라클 FIRST_VALUE,LAST_VALUE 함수 사용법 및 예제 이번시간에는 오라클 FIRST_VALUE,LAST_VALUE 함수에 대해서 알아보겠습니다. - FIRST_VALUE : 첫번째 행의 값을 가져옴 - LAST_VALUE : 마지막 행의 값을 가져옴 사전 준비 --테이블 생성 CREATE TABLE EMP ( EMPNO NUMBER ,ENAME VARCHAR2(50) ,SAL FLOAT ,MGR NUMBER ) --데이터 삽입 INSERT INTO EMP VALUES (100,'A',999,''); INSERT INTO EMP VALUES (400,'B',666,'300'); INSERT INTO EMP VALUES (300,'C',777,'200'); INSERT INTO EMP VALUES (500,'D',555,'200'); INSERT INTO EM.. 2021. 5. 11.
[ORACLE] REGEXP_SUBSTR 사용법 및 예제 이번시간에는 오라클 정규식 표현에 대해서 알아보도록 하겠습니다. 정규식 : | --OR(|)구문 SELECT REGEXP_SUBSTR('ABD','A(B|C)D') AS C2 FROM DUAL;--ABD SELECT REGEXP_SUBSTR('ACD','A(B|C)D') AS C2 FROM DUAL;--ACD SELECT REGEXP_SUBSTR('AB','A(B|C)D') AS C2 FROM DUAL;--없음 SELECT REGEXP_SUBSTR('ABD','A(B|C)D') AS C2 FROM DUAL;--ABD SELECT REGEXP_SUBSTR('ACD','A(B|C)D') AS C2 FROM DUAL;--ACD SELECT REGEXP_SUBSTR('AB','A(B|C)D') AS C2 FRO.. 2021. 5. 11.
[ORACLE] START WITH와 CONNECT BY 설명 및 예제 이번 시간에는 오라클 계층구조 쿼리를 보여주는 START WITH와 CONNECT BY에 대해서 알아보겠습니다. 용어 설명 START WITH - 계층 쿼리 사용 시 시작하는 루트(부모행) 칼럼을 지정합니다. CONNECT BY - 상위계층(부모행)과 하위계층(자식행)의 관계를 설정합니다. - PRIOR 연산자와 함께 사용하여 계층구조로 표현할 수 있습니다. - CONNECT BY PRIOR 자식컬럼 = 부모 칼럼 (부모에서 자식으로 트리 구성 (Top Down)) - CONNECT BY PRIOR 부모컬럼 = 자식 칼럼 (자식에서 부모로 트리 구성 (Bottom Up)) - CONNECT BY NOCYCLE PRIOR : NOCYCLE 파라미터를 이용하여 무한루프 방지 - 서브 쿼리 사용이 불가능합니다.. 2021. 5. 11.
[ORACLE] LPAD, RPAD 함수 사용법 & 예제 이번 시간에는 문자의 길이를 맞추기 위해서 사용하는 오라클의 LPAD, RPAD 함수 사용법에 대해서 알아보겠습니다. 문법 LPAD 함수는 지정한 길이만큼 왼쪽부터 지정한 문자로 채워줍니다. LPAD("값", "총 문자길이", "채움 문자") RPAD 함수는 지정한 길이 만큼 오른쪽부터 지정한 문자로 채워줍니다. RPAD("값", "총 문자길이", "채움 문자") 예제 LPAD 함수 가격이 3000원 이라면 6자를 왼쪽부터 0으로 채워서 맞추기 때문에 003000이 됩니다. SELECT LPAD(가격,6,'0') A FROM RNAK_TEST 결과3000 -> 003000 RPAD 함수 가격이 3000원 이라면 6자를 왼쪽부터 0으로 채워서 맞추기 때문에 3000@@이 됩니다. SELECT RPAD(가격.. 2021. 5. 7.
[ORACLE] DECODE 함수 사용법 오늘은 오라클에서 사용하는 DECODE 함수에 사용법에 대해서 알아보도록 하겠습니다. (MSSQL에서는 case 문으로 대처가 가능합니다.) 문법 이름이 홍길동이면 A를 아니면 B를 반환합니다. --ORACLE 문법 DECODE(이름,'홍길동','A','B') --MSSQL 문법 CASE WHEN '이름' = '홍길동' THEN 'A' WHEN '이름' '홍길동' THEN 'B' END 예문 [조직테이블] 조직ID 조직명 AA 강남 BB 영등포 CC 신촌 DD 을지로 [영업고객 테이블] 고객번호 고객구분코드 담당조직ID 1 A1 AA 2 A2 BB 3 A2 BB 4 B1 CC 5 B1 NULL 6 A1 NULL 쿼리 SELECT A.고객번호, A,고객구분코드, B.조직명 FROM 영업고객 A, 조직 B .. 2021. 5. 7.
오라클(ORACLE) 시간 포맷(1/24/60) 오라클 시간 표현입니다. 시간 확인 1/24 : 1시간 ( 1일을 24로 나누기 ) 1/24/6 : 10분 1/24/60 : 1분 (1일 / 24시간 = 1시간 / 60 = 1분) 1/24/60/6 : 10초 1/24/60/60 : 1초 (1일 / 24시간 = 1시간 / 60 = 1분 / 60 = 1초) 2/24 : 2시간 3/24 : 3시간 시간 확인 쿼리 추가적인 시간은 쿼리를 실행해 보시기 바랍니다. SELECT SYSDATE,SYSDATE - 1/24 FROM DUAL; 2021. 4. 23.
ORA-02049 시간초과 분산 트랜잭션이 잠금으로 대기중입니다 해결방법 오늘은 오라클 오류 메시지 "ORA-02049 시간초과 분산 트랜잭션이 잠금으로 대기 중입니다."의 발생 원인과 해결 방법에 대해서 알아보도록 하겠습니다. ORA-02049 발생 원인 Orange에서 Update문를 실행한 다음 COMMIT이나 ROLLBACK을 실행하지 않은 상태에서 Java 프로젝트에서 같은 테이블로의 Update를 실행하는 경우 발생하는 메시지입니다. 이 오류는 시간이 지나면서 rollback segment의 수치가 낮아지면 자동으로 테이블 락이 해제되기도 합니다만 빠른 해결을 위한다면 다음의 내용을 진행하시기 바랍니다. ORA-02049 문제 해결 트랜잭션 잠금 쿼리 조회 다음의 쿼리를 실행해서 트랜잭션 잠금 세션을 확인합니다. 특정 테이블에 대한 잠금 세션을 확인하기 위해서는 테.. 2021. 4. 2.
오라클 쿼리 세션 타임아웃 설정 오늘은 오라클 쿼리 실행시 세션의 타임아웃(TIMEOUT) 시간을 조회해서 확인하는 방법과 설정되어진 세션 타임아웃 시간을 변경하는 방법에 대해서 알아보겠습니다. 타임아웃 시간 조회하기 SELECT PROFILE, LIMIT FROM DBA_PROFILES WHERE RESOURCE_NAME = 'IDLE_TIME'; PROFILE LIMIT ------------------------------ ---------------------------------------- DEFAULT UNLIMITED SELECT PROFILE FROM DBA_USERS WHERE USERNAME = USER; PROFILE ------------------------------ DEFAULT 타임아웃 시간 ​변경방법 A.. 2021. 4. 2.
ORA-10631 shrink clause should not be specified for this object 오늘은 오라클에서 테이블 축소 작업 시 발생하는 ORA-10631 오류의 원인과 해결방법에 대해서 알아보겠습니다. ORA-10631 발생 원인 데이터베이스의 테이블에 세그먼트 쉬링크(Segment Shrink) 작업을 진행하는 도중에 발생했습니다. ALTER TABLE 유저명.테이블명 SHRINK SPACE CASCADE; ERROR at line 1: ORA-10631: SHRINK clause should not be specified for this object 원인은 해당 테이블에 생성된 인덱스 중에 함수 기반의 인덱스가 포함되어 있기 때문입니다. ORA-10631 해결 방법 1. 로그축소를 하기 위한 테이블에서 함수 기반 인덱스를 찾습니다. 2. 테이블에서 함수 기반 인덱스를 찾은 후 인덱스에서.. 2021. 3. 30.
오라클 함수 기반 인덱스 생성 & 조회 오늘은 오라클에서 사용하는 함수기반 인덱스 생성방법과 테이블에서 함수기반 인덱스를 찾는 방법에 대해서 알아보겠습니다. 함수기반 인덱스란? 테이블의 컬럼들을 값을 가공해서 가공된 값으로 인덱스를 생성합니다. 사용 목적 함수기반 인덱스의 사용목적은 구현하기가 쉽고 효과를 즉시 알수 있기때문입니다. 그리고 기존의 로직을 유지하면서 속도를 개선할 수 있는 장점이 있습니다. 인덱스 생성 --예제 create index 인덱스명 on 테이블명(컬럼가공 명령어); create index idx_emp_sal on empsal(sal*12); 테이블에서 함수 기반 인덱스 찾기 SELECT OWNER, index_name, index_type FROM dba_indexes WHERE index_type like 'FUN.. 2021. 3. 30.
반응형