반응형

 

>> 호스트 "111.11.11.11", 사용자 "test", 데이터베이스 "postgres", SSL 중지 연결에 대한 설정이 pg_hba.conf 파일에 없습니다.

 

상황

A 시스템(111.11.11.11)에서 B DB서버 접근이 되지 않으며 해당 로그를 뱉음(A 서버 > B DB 서버 PORT 오픈한 상태)

*B 서버는 윈도우 서버

 

해결 - B DB 서버의 pg_hba.conf 파일 수정 (IP 추가하여 접근 권한 부여)

* 수정 시 DB 재시작 필요

 

 

https://www.postgresql.kr/docs/9.6/auth-pg-hba-conf.html

 

The pg_hba.conf 파일

이 레코드와 일치하는 데이터베이스 사용자 이름을 지정한다. all 값은 모든 사용자와 일치하도록 지정한다. 이 외에는, 특정한 데이터베이스 사용자의 이름이거나, 앞에 +를 붙인 그룹 이름이다

www.postgresql.kr

 

반응형

'DATABASE' 카테고리의 다른 글

[SQL] SELECT * INTO문은 무엇인가  (0) 2021.09.17
[표준 SQL] JOIN 정리 (INNER JOIN/OUTER JOIN)  (0) 2021.09.17
반응형

SELECT  INTO

: 원본은 있고 대상 테이블은 새롭게 생성하려 할 경우 사용

 

T라는 테이블에서 모든 데이터를 가져와 T_DUPLICATED라는 테이블을 생성하여 데이터를 INSERT하고 싶다면?

 

 

- T테이블과 같은 컬럼과 데이터를 가지는 T_DUPLICATED라는 테이블이 생성

 

SELECT * INTO T_DUPLICATED FROM T

 

- T테이블의 특정 컬럼만 가져와서 T_DUPLICATED라는 테이블을 생성하여 데이터를 INSERT

SELECT * INTO T_DUPLICATED
FROM (
	SELECT COL1,COL2,COL3.... FROM T 
) AS TEMP

 

 

처음엔 select 문 오타인줄 알았다,,

반응형
반응형

오라클 OUTER JOIN은 (+)으로 표시하는데 이를 표준 SQL로 수정해야기 때문에 정리.

 

 

조인 (INNER JOIN) : 기준 테이블과 조인 테이블 모두 데이터가 존재해야 조회됨

- INNER JOIN : 내부조인 (교집합)

- LEFT/RIGHT JOUN : 부분집합

 

 

1) LEFT JOIN : 조인기준 왼쪽에 있는 것 SELECT (교집합 포함) 

SELECT A.ID, A.ENAME, A.KNAME
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID;

 

2) LEFT JOIN : 조인기준 왼쪽에 있는 것 SELECT  (교집합 미포함)

SELECT A.ID, A.ENAME, A.KNAME
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID;
WHERE B.ID IS NULL

아우터 조인 (OUTER JOIN) : 동일한 값이 없는 행도 반환할 때 사용하는 구문 : 합집합

 

1) 모든 테이블 SELECT

SELECT A.ID, A.ENAME, A.KNAME
FROM A FULL OUTER JOIN B
ON A.ID = B.ID

2) 모든 테이블 -  공통 부분 SELECT 

SELECT A.ID, A.ENAME, A.KNAME
FROM A FULL OUTER JOIN B
ON A.ID = B.ID
WHERE A.ID IS NULL OR B.ID IS NULL

 

 

 

 

 

 

반응형

'DATABASE' 카테고리의 다른 글

[postgresql] 특정 IP/외부 접속 허용 (pg_hba.conf)  (0) 2024.01.08
[SQL] SELECT * INTO문은 무엇인가  (0) 2021.09.17
반응형

개발에 들어가기 앞서 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

반응형