울음참고 개발공부
article thumbnail
디비버(DBeaver) 에서 Oracle 연결 ( localhost 의 경우 )
Oracle 2024. 3. 4. 14:03

[ 상황 ] 디비버를 사용하여 로컬호스트와 연결하려는 중 접속 오류발생 1. localhost 연결확인 [ 오류 ] ORA-12514: 데이터베이스에 접속할 수 없습니다. %s 서비스가 %s의 리스너에 등록되지 않았습니다. listner.ora 와 tnsnames.ora 파일을 변경할 것이다. - listner.ora - tnsnames.ora 나의 경우에는 host 가 localhost 가 아닌 다른 이름이 설정되어있었다. 2. 오라클 비밀번호 재설정 sqlplus 가 있는 경로에서 실행시켜준다. 비밀번호는 엔터를 입력하면 넘어간다. 그후 다음 명령어를 실행한다. alter user sys identified by 설정할 비밀번호; 설정할 비밀번호에는 1111 등 원하는대로 설정하면 된다. 3. use..

article thumbnail
SQL | SELECT 1 FROM ~ - SELECT 문에서 1을 조회하는 경우
Oracle 2023. 8. 9. 14:11

SELECT 1 FROM 테이블명 테이블의 행의 갯수만 큼 1을 반환 # 예시 SELECT * FROM QUOTES; [ 결과 ] SELECT 1 AS TEST FROM QUOTES; [ 결과 ] QUOTES 테이블의 행의 갯수만큼 1이 출력된다 어떤 상황에서 사용할까? 값의 존재여부를 확인하는 경우 SELECT CASE WHEN EXISTS ( SELECT 1 FROM QUOTES WHERE CATEGORY = '인생' ) THEN 'TRUE' ELSE 'FALSE' END AS CATEGORY_EXISTS; [ 결과 ] 서브쿼리에서 사용하는 경우 "USER" 테이블의 "USER_ID"가 1이고, "ROLE_DTL" 테이블에 존재하는 사용자의 ID와 일치하는 경우를 조회하는 쿼리 SELECT USER_..

article thumbnail
sqldeveloper | 데이터베이스 접속 오류
Oracle 2023. 6. 8. 11:10

[ 문제상황 ] db 접속을 해야하는데 계속 오류가 나는 상황이다 lsnrctl services cmd 창에서 해당 명령어를 통해 호스트 이름, 포트 , SID 명을 확인할 수 있다. 설치시 SID name 을 orcle 로 기본설정하였는데 저기서는 xe로 되어있음 hostname이나 포트도 마찬가지이고 참고해서 바꿔서 진행해보면 될 것 같다 참고로 나는 저걸 바꿔도 안되는 상황이라 뭔지모르겠다 원래는 저런 오류가 없었는데 재설치하고 어찌저찌하다보니 생겼다........ 후...... 해결 >>>> 위의 방법은 로컬 db에서 사용하고자 할때 하는 방법이고, 나는 원격 db 를 사용하기 때문에 해당 데이터베이스의 호스트네임과 포트번호등을 이용하여야했다.

article thumbnail
Oracle | JOIN 에서 KEY의 관계
Oracle 2023. 6. 2. 17:00

대표적으로 2가지 JOIN 에 대해서만 다루자 INNER JOIN NULL 을 허용하지 않을 때의 JOIN LEFT OUTTER JOIN NULL 이 있어도 상관 없음 ~ 오늘 다룰 주제는 JOIN 할 때 KEY 의 관계이다 조인을 사용하여 두 개의 테이블을 엮어 원하는 데이터를 추출할 수 있다. 이때, 두 테이블에서 키의 관계는 기본키(PK)와 외래키(FK) 관계로 맺어져야하고 이를 일대다 관계라 한다. [ 예시 ] 지점의 매출을 조회하는 쿼리를 작성하던 중 이런 결과를 얻게됐는데 정답보다 어마무시하게 큰 숫자가 나와버렸다. JOIN 을 걸 때, 같은 컬럼명이 있다면 냅다 다 연결해버렸는데 나중에 뜯어보니 관계가 이랬다. PF ↔ PF PF ↔ P P ↔ F 정확하게 말할순없지만 PF도 외래키라 외래키..

article thumbnail
Oralce | COALESCE 함수
Oracle 2023. 6. 2. 11:28

COALESCE > 문법 SELECT COALESCE( A,B) FROM TABLE; A,B 는각각 컬럼을 뜻한다. COALESCE 함수는 NULL 이 아닌 값을 리턴하는데, A가 NULL 이아니면 A를 리턴하다가 NULL 값을 가지면 B를 리턴한다. COALESCE(A,B,C ''' ) 이런식으로 N개의 컬럼을사용할 수 있다. > 예시 SELECT COALESCE(ITEM_NAME, '총 합계') AS 상품 , SUM(합계) AS 합계 FROM ( 생략 ) COALESCE 함수만 설명하기 위해 이하 쿼리는생략했다. 해당 쿼리는 ITEM_NAME을 리턴하고 마지막에 모든 합계를 계산 하는 쿼리이다. COALESCE(ITEM_NAME, '총 합계') 를 이용하여 ITEM_NAME 을 모두 리턴하고 NULL..

article thumbnail
Oracle | SUBSTR() 문자열 자르는 함수 / 연결 연산자 ||
Oracle 2023. 6. 1. 15:40

SUBSTR > 표기 SUBSTR( 문자열, 시작위치, 길이 ) ORD_DATE 컬럼에는 시간정보가 들어있다. (12시20분이면 1220 ,. 5시 10분이면 1710 이런식으로) SELECT SUBSTR(BO.ORD_TIME, 1, 2) 결과 시간 12 17 1 2 2 0 첫번째 문자열 -> 1 / 길이 -> 2 니까 12가 선택된다 || 연결 연산자 > 표기 '문자'|| '문자' 위의 예제에서 숫자만 표기하기보다 '시'를 붙여서 표기하고 싶다! SELECT SUBSTR(BO.ORD_TIME, 1, 2) || '시' AS 시간대

article thumbnail
Oracle | 문자 -> 숫자 함수 TO_CHAR TO_NUMBER
Oracle 2023. 5. 30. 16:15

상품코드(ITEM_CODE)는 문자열 이다. 근데 저렇게 1번인데 0~~ 이렇게 되있으니까 보기싫다 이걸 숫자로 바꿔보자 1) TO_CHAR - TO_NUMBER 함수 SELECT TO_CHAR(TO_NUMBER(BI.ITEM_CODE)) AS 상품코드 , BI.ITEM_NAME AS 상품명 , COUNT(BOI.ORD_CODE) AS 판매량 FROM BURGER_ITEM BI JOIN BURGER_ORD_ITEM BOI ON BI.ITEM_CODE = BOI.ITEM_CODE GROUP BY TO_CHAR(TO_NUMBER(BI.ITEM_CODE)), BI.ITEM_NAME; 2 ) TRIM - LEADING SELECT TRIM(LEADING '0' FROM BI.ITEM_CODE) AS 상품코드 ,..

article thumbnail
Oracle | 특정 기간 내 데이터 구하기 - BETWEEN TO_DATE
Oracle 2023. 5. 25. 14:36

[ 문제 ] 특정기간 내 조회를 하려하는데 죽어라 안나온다 SELECT BI.ITEM_NAME , BOI.PRICE * COUNT(BOI.ORD_CODE) AS 매출액 FROM BURGER_ORD_ITEM BOI JOIN BURGER_ITEM BI ON BOI.ITEM_CODE = BI.ITEM_CODE JOIN BURGER_ORD BO ON BOI.ORD_CODE = BO.ORD_CODE WHERE BO.ORD_DATE BETWEEN ('2018-03-01') AND ('2018-03-31') GROUP BY BI.ITEM_NAME , BOI.PRICE; 띠용 조회 조건이 잘못된건지 이래저래 고쳐가며 해봐도 안됐다. 2018-03-01 이래 데이터가 없는 것도 아니었다. WHERE BO.ORD_DATE..