오라클

🐍ORACLE

오라클 계층쿼리 start with connect by로 계층 구조를 알아보자

계층 쿼리를 사용할 일이 있어서 공부해보았다. 계층 쿼리를 사용하면 순환 관계를 가진 데이터를 조회가 가능하다. 아래와 같은 구조로 표현 가능하다. 테스트 데이터는 오라클에서 제공하는 HR스키마의 EMPLOYEE테이블을 사용하였다. 노드는 부모와 자식으로 나눌수있고, LEVEL1노드 기준으로 부모가되고 LEVEL2노드는 자식이 된다. 또한 LEVEL3기준으로 LEVEL3은 부모가 되고 LEVEL4는 자식노드가 된다. ▶ 테이스 데이터 SELECT쿼리 SELECT B.EMPLOYEE_ID , B.MANAGER_ID , B.FIRST_NAME , B.LAST_NAME, B.SALARY FROM EMPLOYEES B 출력결과 EMPLOYEE_ID|MANAGER_ID|FIRST_NAME |LAST_NAME |S..

🐍ORACLE

도커Docker - 오라클19c 띄우기 디비버 접속하기

도커로 오라클 19c 띄우기 도커를 사용해보고 싶어서 준비했다. 도커로 오라클19c 띄우기! 도커 데스크탑 준비 https://www.docker.com/ Docker: Accelerated, Containerized Application Development Docker is a platform designed to help developers build, share, and run modern applications. We handle the tedious setup, so you can focus on the code. www.docker.com 각자 OS에 맞게 도커를 다운로드하자! 도커를 다운 후 설치가 완료 됐으면 실행하고, 윈도우CMD나 리눅스 터미널에서 작업을 수행하자 윈도우CMD에서 도커..

🐍ORACLE

ORACLE SQL 처리 과정, 최적화란 무엇일까???

오라클 처리과정은 어떻게될까? 알아봤다 오라클 SQL 처리과정(SQL Processing) 1. SQL Statement SQL 쿼리문장을 뜻한다. 예를 들어서 고객정보 화면에서 주민번호나, 고객번호를 입력 후 조회 버튼을 눌렀을 때 해당 쿼리가 DB서버로 고객정보 데이터를 요청하는 SQL을 뜻한다. SELECT * FROM 고객 WHERE 고객번호 = '48382' OR 주민번호 = '1234561234567'; 2. 파싱(Parsing) 작업 Application에서 SQL문을 발행 후, SQL을 실행 전 Parse Call(구문분석 호출)을 한다. 파싱을 세분화 하면 세가지로 나뉜다 2-1. 파싱 트리 생성와 Syntax Check 파싱트리는 SQL 각 개별 구성요소를 분석해 파싱트리를 생성하는 작..

❌이전글/이전글

Oracle - decode()함수 정리

디코드함수 표현식 DECODE함수는 expr과 search가 일치하면 result, 모두 일치하지 않으면 default를 반환, default를 지정하지 않으면 널을 반환 한다. DECODE( expr, search , result [, search, result]... [, default] ) 자동형변환 주의 1) EMP테이블 데이터 -- emp테이블 SELECT * FROM EMP; EMPNO|ENAME |JOB |MGR |HIREDATE |SAL |COMM|DEPTNO| -----+---------+---------+----+-----------------------+----+----+------+ 7369|SMITH |CLERK |7902|1980-12-17 00:00:00.000| 800| | ..

❌이전글/이전글

ORACLE - 그룹 바이(GROUP BY) (2)

Group by(1)에서는 컬럼 하나에 대해서 정리를 했는데, Group by(2) 에서는 컬럼 두가지가 group by 되는 과정을 정리해보자 GROUP BY 절 Syntax GROUP BY { column-Name [ , column-Name ]* | ROLLUP ( column-Name [ , column-Name ]* ) } 어김없이 나오는 Syntax 테스트할 때 사용한 데이터 SELECT * FROM EMP ORDER BY DEPTNO; EMPNO|ENAME |JOB |MGR |HIREDATE |SAL |COMM|DEPTNO| -----+---------+---------+----+-----------------------+----+----+------+ 7934|MILLER |CLERK |7..

❌이전글/이전글

ORACLE - 그룹 바이(GROUP BY) (1)

그룹바이를 정리해보고 싶었다. 그래서 정리해봤다. 먼저 그룹바이를 알기 전 SQL 실행 순서를 알아야 한다고 배웠다. SQL 실행 순서 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY Group by 란? 데이터를 그룹화하는 문법, 값은 값을 가진 데이터끼리 모으는 것 GROUP BY 컬럼이 아니면 집계함수로 표현해야한다 GROUP BY 컬럼이 아니면 SELECT 절에서 집계함수를 사용하지 않으면 에러가 난다 SELECT * FROM EMP GROUP BY DEPTNO ---------------- SQL Error [979] [42000]: ORA-00979: GROUP BY 표현식이 아닙니다. 테스트에 사용한 데이터 오라클에서 주는 SCOTT스키마를 사용..

❌이전글/이전글

오라클(ORACLE) - FULL OUTER JOIN ANSI에서 오라클로 변환

ANSI FULL OUTER JOIN표현을 오라클 문법으로 표현해보자! #테스트를 위한 데이터 준비! WITH EMP1 AS ( SELECT 1 A, 2 B, 3 C FROM DUAL UNION ALL SELECT 2 A, 2 B, 3 C FROM DUAL UNION ALL SELECT 3 A, 2 B, 3 C FROM DUAL UNION ALL SELECT 5 A, 2 B, 3 C FROM DUAL ), EMP2 AS ( SELECT 1 A, 2 B, 3 C FROM DUAL UNION ALL SELECT 2 A, 2 B, 3 C FROM DUAL UNION ALL SELECT 4 A, 2 B, 3 C FROM DUAL ) SELECT * FROM EMP1 UNION ALL SELECT TO_NUMBE..

❌이전글/이전글

DBeaver 공백이있는 쿼리 실행오류!

디비버 툴에 익숙해지고 있다. 근데 쿼리 실행하다 엔터처리된 부분(공백) 에서 자꾸 에러가 났다. 이렇게! 환경설정에서 설정해주는게 있을 것 같아서 찾아봤다! SQL실행 부분을 찾아보니 있다. 참 다행이다. 윈도우 > 설정 > 편집기 > SQL 편집기 > SQL실행 탭 순으로 찾아가자! 붉은색 네모를 보면 Blank line is statement delemiter의 체크박스의 체크표시를 없애주자! 아주 훌륭하게 없앴다. 이제 적용 후 쿼리를 실행해 보자! 이제 공백이 있는 부분도 잘 실행된다!

❌이전글/이전글

DBeaver : no active connection 대체 뭐야.....?

DBeaver 툴을 사용중 갑자기 No active connection 라는 에러를 만났다. Test Connection을 누르고, 연결이 잘되는 것을 확인하고 쿼리를 실행시켰지만 아래와 같은 에러가 자꾸 뜬다. 툴을 삭제하고 다시 설치도 해보고 구글링도 열심히 해보았지만, 나같은 사례를 못찾았다. 환장하겠다. 한동안 SQL Developer 를 사용하다, 너무 불편해서 다시 문제해결방법을 찾아보았다. 그러다 단축키 중 Switch active connection (for SQL script)라는 걸 찾았는데, CTRL + 9를 누르면 아래와 같이 창이 하나 뜨는데, 사용할 데이터베이스를 클릭하고, 쿼리문을 실행하자 정상 파싱되고 테이블을 출력해줬다. 대체 이게 무슨 에런지 이해를 못하겠다.... 오렌지..

❌이전글/이전글

오라클 한글 3byte -> 2byte변경

오라클 한글 3byte -> 2byte 변경 cmd창에서 sqlplus /as sysdba 로 접속 후 #쿼리문 ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; ALTER SYSTEM SET AQ_TM_PROCESSES=0; ALTER DATABASE OPEN; ALTER DATABASE CHARACTER SET KO16KSC5601; ALTER DATABASE CHARACTER SET INTERNAL_USE KO16KSC5601; shutdown immediate; 위 내용 복사 붙여넣기 노란색은 에러날 수 있음, 무시하기 이후 쿼리문을 사용시 * 1행에 오류: ORA-01034: ORACLE not avai..

부드러운당근무침
'오라클' 태그의 글 목록