📕🐘 도로락 - 코끼리를 냉장고에 넣는 방법

# 오라클 (10)

데이터베이스[DB] 2020. 8. 26. 00:30

[Oracle] 오라클 열을 행으로 바꾸는 UNPIVOT 사용법 및 설명

오라클 열을 행으로 바꾸는 UNPIVOT 사용법 및 설명오라클에서 UNPIVOT을 사용하면 가로로 출력되는 여러 속성(COLUMN) 데이터를 세로로 돌려 행(ROW)으로 출력할 수 있습니다.사원들의 부서번호, 직책, 급여 보기오라클 사용자라면 누구나 알법한 SCOTT 형님(?)의 EMP 테이블입니다.SELECT * FROM EMP;사원정보를 담고 있으며, JOB(직책), SAL(급여), 부서번호(DEPTNO)가 실습시 사용될 컬럼입니다.사원들의 부서번호, 직책, 급여정보를 보도록 하겠습니다.SELECT ENAME, DEPTNO, JOB, SALFROM EMPORDER BY ENAME;평소 사용하던 문법이니 출렬 결과를 예상하셨을 것입니다.여러 속성들을 세로로 보기만약 부서번호, 직책, 급여를 속성(COL..

데이터베이스[DB] 2020. 8. 25. 16:32

[Oracle] 오라클 행을 열로 바꾸는 PIVOT 사용법 및 설명 및 PIVOT 대체하기

오라클 행을 열로 바꾸는 PIVOT 사용법 및 설명 및 PIVOT 대체하기오라클에서 PIVOT을 사용하면 세로로 출력되는 형식의 데이터를 가로로 뒤집어 출력할 수 있습니다.부서별 직책별 평균 급여 구하기오라클 사용자라면 누구나 알법한 SCOTT 형님(?)의 EMP 테이블입니다.SELECT * FROM EMP;사원정보를 담고 있으며, JOB(직책)과 SAL(급여), 부서번호(DEPTNO)가 실습시 사용될 컬럼입니다.각각의 부서별 직책별 평균 급여를 구해보도록 하겠습니다.SELECT DEPTNO, JOB, AVG(SAL)FROM EMPGROUP BY DEPTNO, JOBORDER BY DEPTNO, JOB;간단하게 출력되었으나 여러 행(ROW)로 출력되어 뭔가 한번에 정리가 되지 않아 불편합니다.세로를 가로..

데이터베이스[DB] 2020. 8. 23. 12:00

[Oracle] 여러행의 데이터를 하나의 행에 가로로 출력하기 LISTAGG 함수 사용법

여러행의 데이터를 하나의 행에 가로로 출력하기 LISTAGG 함수 사용법여러행의 데이터를 하나의 행에 가로로 출력이 가능합니다.예를 들어 아래 사원 테이블을 보죠.SELECT EMPNO, ENAME, JOB, DEPTNO FROM EMP;사원원호(EMPNO), 사원명(ENAME), 직책(JOB), DEPTNO(부서번호)가 있습니다.10번 부서에 속한 사원 목록여기서 10번 부서의 사원명을 구해봅니다.SELECT DEPTNO, ENAME FROM EMP WHERE DEPTNO = 10;10번 부서에 속해있는 사원이 세명이기에 세개의 행이 출력되었습니다.각 부서에 속한 사원 목록이번에는 10번부서 뿐만 아니라 각 부서별 사원명을 출력해 보도록 하겠습니다. GROUP BY를 사용할 수 있을것입니다.SELECT..

데이터베이스[DB] 2020. 8. 10. 00:02

[Oracle] 대소문자 구분 없이 검색하는 경우에 WHERE 조건

오라클 대소문자 구분 없이 검색하는 경우에 WHERE 조건테이블의 문자열 컬럼을 대상으로 대소문자를 가리지 않고 검색을 해야할 때가 있습니다.예를 들어 고객사의 이름이 대소문자를 구분하지 않고 저장되어 있는 경우 입니다.SELECT * FROM CUSTOMERS;이 경우 사용자가 고객사의 이름을 대소문자를 구분하고 외우고 있지 않는 이상 = 연산자를 사용하거나 LIKE문을 사용하기가 어렵습니다. 만약 대소문자를 구분하여 알고 있다고 하더라도 편의적인 측면에서 매우 번거로울것입니다.이 경우 두가지로 해결이 가능한데, WHERE절에 저장된 데이터와 검색할 문자열 모두 대문자 또는 소문자로 변경하여 비교하는 것입니다.SELECT *FROM CUSTOMERSWHERE LOWER(NAME) = LOWER('INT..

데이터베이스[DB] 2020. 8. 9. 21:57

[Oracle] ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다 오류

오라클 ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다 오류오라클 12C부터는 공통 사용자 생성시 계정명 앞에 접두사로 c##을 붙여주어야 합니다.예를 들어 scott계정을 생성하는 경우 기존 11버전에서처럼 생성하면 오류가 발생하게 됩니다.SQL> create user scott 2 identified by tiger;create user scott *1행에 오류:ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.아래와 같이 생성하도록 합니다.SQL> create user c##scott 2 identified by tiger;다만 계정에 c##이 붙기 때문에 client를 통해 접속할때나 권한을 줄때도 마찬가지로 c##을 붙여주는 번거로움이 있습니다...

데이터베이스[DB] 2019. 8. 22. 18:20

[Oracle] 오라클 ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다 오류 해결 방법

ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다 오류 원인사용자 생성 후 테이블을 생성하고 INSERT 하려는 순간 다음과 같은 오류가 발생하였습니다. (혹은 CREATE시에)ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다오라클에서는 테이블스페이스라 하여 테이블이 저장되는 공간이 있습니다. 새로운 사용자를 생성한 직후에 기본적으로 할당받는 테이블 스페이스는 users입니다.그러나 생성된 유저에 대해 GRANT를 통해 RESOURCE 롤(role)을 부여해주지 않은 경우 이 users 테이블스페이스에 얼마만큼의 영역을 할당한것인지 정해지지 않은 상태입니다.따라서 users 테이블스페이스에 데이터를 입력하려 하니 ORA-01950 오류가 발생하게 된것니다. 즉 ..

데이터베이스[DB] 2019. 7. 30. 20:31

[ORACLE] 오라클 11g DBMS 접속 포트 변경하는 방법

오라클(Oracle) 11g DBMS 접속 포트 변경하는 방법오라클에서 DBMS의 접속 포트(보통 1521)를 변경하려면 세 가지를 수정해 주어야 합니다. 첫 번째는 listener.ora 파일이며, 두 번째는 tnsnames.ora, 세 번째는 SYSTEM 테이블의 LOCAL_LISTENER입니다.리스너 서비스 중지설정을 변경해야 하므로 리스너를 중지시켜야 합니다.cmd(명령 프롬프트)를 실행해야 하는데, 관리자 권한으로 실행합니다.lsnrctl stop 명령어를 실행하여 서비스를 중지시킵니다.lsnrctl stoplistener.ora 파일 수정다음 경로에 접근한 이후 텍스트 편집기를 이용해 listener.ora 파일을 열어줍니다.C:\app\[사용자]\product\11.2.0\dbhome_1\N..

데이터베이스[DB] 2019. 7. 29. 19:10

[ORACLE] Windows 시스템 재시작시 Oracle 서비스 자동, 수동 시작/종료 하는 방법

Windows 시스템 재시작시 Oracle 서비스 자동, 수동 시작 설정 하는 방법Windows에 오라클 DBMS가 설치된 경우 DBMS는 백그라운드 프로세스로 실행됩니다. DBMS는 서버이기 때문에 항상 실행되면서 서비스 되어야 하기 때문입니다.문제는 Windows 시스템 재시작(재부팅)시에 Oracle도 자동으로 재시작 되느냐 입니다. 실무 환경이라면 재시작되어야 하는 경우가 많지만 만약 DB 스터디등을 위해서 설치된 경우라면 사용하지 않는 경우에도 메모리나 CPU가 낭비되어 데스크탑 및 노트북의 성능이 느려질 수 있습니다.반대로 실제 사용자들에게 서비스 되고 있는 DB라면 서버의 시스템이 재시작되더라도 자동으로 Oracle 서비스 또한 시작되어야 할 것입니다.서비스 관리 창 열기시작버튼 + E를 눌..

데이터베이스[DB] 2019. 3. 13. 00:30

[ORACLE] 오라클 11g Enterprise 버전 다운로드 및 설치하기

오라클 11g Enterprise 버전 다운로드 및 설치하기오라클 11g는 기능에 따라 몇 가지 라이센스가 있는데, 비상업적인 용도로 개인이 사용할 경우에는 무료로 다운로드하여 사용하는 것이 가능합니다. 오라클 10 버전의 경우에는 지원이 중단되어 다운로드 링크가 사라졌습니다. 오라클 10 버전을 사용하고 싶은 경우에는 오라클 측으로 문의를 넣어야 하는 것 같습니다.다음 링크의 다운로드 페이지로 이동합니다. (이 글을 쓰는 시점 이후로 해당 페이지 주소가 변경될 수 있습니다.)https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html라이센스에 동의하기 위해 Accept License Agreement에 체크합니다오..

데이터베이스[DB] 2019. 3. 12. 13:00

[ORACLE] 오라클 11g 설치 이후 SCOTT 계정 사용되도록 활성화 하기

오라클 11g 설치 이후 SCOTT 계정 사용되도록 활성화 하기다른 DBMS와 마찬가지로 오라클 DB에서도 설치시 자동으로 학습을 위한 계정인 SCOTT 을 제공합니다. SCOTT 이라는 이름은 오라클 창립 당시 처음 입사했던 프로그래머인 브루스 스콧의 이름을 딴 것이라고 하네요. SCOTT 계정의 비밀번호는 기본적으로 TIGER인데 스콧의 딸이 기르던 고양이의 이름입니다.아무래도 계정과 비밀번호가 공통이기 때문에 오라클9i 버전까지는 설치 직후 바로 이용이 가능했으나, 10g 부터는 보안상의 이유로 비활성화 되어있습니다. 따라서 SCOTT 계정을 사용 가능하도록 설정을 해주어야 합니다.커맨드를 열고 설치된 오라클의 시스템 계정으로 접근합니다.sqlplus 실행 계정/비번그리고 다음과 같이 수정하여 계정..