반응형

개발에 들어가기 앞서 SQL 문을 보면서 익숙하지 않는 ORACLE 함수를 정리해보려고 한다.

 

1. CONCAT, ||

LIKE ('%' || #변수# || '%')

||은 CONCAT과 동일하게 문자열을 합치는 기능을 한다.

 

+) LIKE 함수를 쓸 때 왜 || 를 활용하느냐? 

%#변수#% 이렇게 사용할 수 있지만, SQL INJECTION에 위협이 크기 때문임

 

 

2. DECODE, CASE WHEN

 

DECODE(USE_YN, 'Y', 'Y', 'N')

: if use_yn == "Y" 이라면 Y이고 아니면 N이다.

 

DECODE는 IF ELSE와 같은 기능을 한다.

SQL문에서 통용되지 않기 때문에 CASE WHEN을 사용하는 것을 권장함. 속도도 case when이 더 빠르다고 함

 

(왜 DECODE문과 CASE WHEN 문을 같은 쿼리에 두었는지는 모르겠다,,)

SELECT ename
     , deptno
     , CASE WHEN deptno = '10' THEN 'New York'
            WHEN deptno = '20' THEN 'Seoul'
            ELSE 'Toronto'
       END AS location
  FROM emp

 

3. OVER()

 

분석_함수() OVER(PARTITION BY 컬럼 / ORDER BY 컬럼 / 세부 분할 기준)

 

1) PARTITION BY : Group by와 비슷한 기능

 

 

4. NVL, NVL2

 

1) NVL 함수는 값이 null인 경우 지정값을 출력한다.

- 함수  :  NVL("값", "지정값")

 

2) NVL2 함수는 null이 아닌경우 지정값1을  출력하고, null인 경우 지정값2을 출력 한다.

- 함수 :  NVL2("값", "지정값1", "지정값2")

반응형

'DATABASE > Oracle' 카테고리의 다른 글

[ORACLE] 계층형 쿼리 간단 예제  (0) 2021.08.05
다운로드 링크 사라진 Oracle 11g 설치하기  (0) 2021.08.04
반응형
/* 계층형 쿼리 간단 예제 */
CREATE TABLE TAB1 (
    C1 VARCHAR2(1),
    C2 VARCHAR2(1),
    C3 VARCHAR2(1) );
    
    
INSERT INTO TAB1 VALUES ('1', NULL, 'A');
INSERT INTO TAB1 VALUES ('2', '1', 'B');
INSERT INTO TAB1 VALUES ('3', '1', 'C');
INSERT INTO TAB1 VALUES ('4', '2', 'D');

SELECT * FROM TAB1;
    
/*ORDER SIBLINGS BY : 계층구조는 그대로 유지하면서
동일 부모를 가진 자식들끼리의 정렬 기준을 주는 것 */
SELECT *
    FROM TAB1
START WITH C2 IS NULL
CONNECT BY PRIOR C1 = C2
ORDER SIBLINGS BY C3 DESC;

 

start with 최상위 노트 설정

connect by 부모 - 자식 노트 연결

 

START WITH C2 IS NULL 

 

>> 1 NULL A

 

CONNECT BY PRIOR C1 = C2

ORDER SIBLINGS BY C3 DESC

 

>> 3 1 C

>> 2 1 B

 

CONNECT BY PRIOR C1 = C2

 

>> 4 2 D

 

 

1 NULL A

3     1     C

2     1     B

4     2     D

반응형
반응형

 

오라클은 처음 해보고 무슨 버전을 설치해야하는 감이 안잡히는 상태에서 쓴 글입니다.

 

 

19c는 아예 설치가 되지 않고 11g로 돌아 돌아 설치하려고 했으나 설치 링크도 아예 사라진 상태에서 

 

Oracle Database Enterprise Edition 10.2, 11.x, 12.x, and 18c are available as a media or FTP request for those customers who own a valid Oracle Database product license for any edition. 

 

이라고 하니 포기했다가 글씨라도 띄어진 페이지를 찾았다.

 

*19C 문제는 윈도우 PRO를 씀에도 불구하고 ASL 를 못 찾았다니 하는 소리였음 그리고 넘어가니 configuration 까지 안된다..

 

https://www.oracle.com/kr/database/technologies/oracle-database-software-downloads.html

 

반가움에 눈물이 왈칵 나왔다가 눌러보니 다시 오라클 DB 페이지로 돌아가는 것이었음 

 

또 찾아 찾아 예전 버전을 다운 받을 수 있는 링크를 찾았다.

 

https://edelivery.oracle.com/osdc/faces/SoftwareDelivery;jsessionid=kVsOkAblfAogLyKAnnX-0yZfSVGU-QQiN-hF7cA7MzAAtMCAezpw!118011030

 

https://login.oracle.com:443/oam/server/obrareq.cgi?encquery%3DvyTug%2Ffm1h82DrYkLSbYubdIzGQoROtu%2Bq7fbOrrB5wWqXDDT1z3KJHNufaafDDkPYES6fAcLU3m2GVmyTGkpMk%2FzdqXhb8hpCVn1ofT4cFW8KT3b8TPTBMKPzkj1IpIRUeqocloaXZ7qHPgAWGGxiyzjpjbW7kOi0U9c%2BMJVrT9gjoUrQosVcBlo0kPoSTp6Ay05kl2f5Hf%2BEio4O9c7mYWvPyetXC%2Fq73Etbka1aj3mTVgy9nAsn7PVtAuZXfXQYxmAQ7XmYjsg85F97q7UCNxgGBhxA0zj1mumor5Ssxwb33fnHUsNJ3BnCAhHg%2BV2JNRvv2MDWkN4AZxJhLZyrJ%2BwrerahNXE5e%2FIWNotzwqiC1gSBE39G0AXzb%2F88wHQkNI7bu6vHs4tKgr9JxO53lz1cGik7m8KJaoOwtHP9Y4eu82BfbQAA9pikgFiCLABNrJLn7%2Bv3ljvS%2BnrfWuSpGFbTbLT4EyUxbesiqEE11V954VjnBEuDOyqf6M%2Bo4hbbH2WBLMDi8nUZ3AXDfDeFPEqEW5PRJc5aFFoDafdH2OBPS%2FxpssOPq4h90LDj73%20agentid%3Dedelivery-extprod%20ver%3D1%20crmethod%3D2&ECID-Context=1.005mB8ojZkPFo2KimTXvWJ0005UN00WOTU%3BkXjE

 

login.oracle.com:443

그렇게 해서 다운 받은게 Oracle 11g Client인데, 이건 내가 찾던 것이 아니라서 다시 삭제하고 다시 찾음

 

내가 찾던 것은 블로그에서 많이 보이는 file이 2개로 나눠진 파일인데,,,,

 

드디어 찾았다.

근데 이 페이지 너무 사용자관점에서 안짜여져 있어서 버튼을 찾기가 좀 그렇긴 한데 add하면 큐에 저장되고 continue 버튼을 누르면 설치 페이지까지 올 수 있다.

 

밑에 client와 grid 뭐시기 하는 부분은 뭔지 몰라서 일단 나눠진 파일을 다운 받아야 할 것 같아서 설치 진행 중..

 

뜨는 화면도 블로그에서 보던 것과 동일하다!

 

 

설치는 다음 블로그보고 참고하였다.

 

https://webobj.tistory.com/23

반응형