본문 바로가기
반응형

DataBase24

[트러블슈팅] Oracle ORA-12514 : TNS 리스너 연결 실패 개발환경 세팅 중에 오류가 난 경험이 많은데 매번 해결하기에 급급해서 어디 기록을 안해서 미래의 나를 위해 해결한 이력 기록을 남겨보기로 한다. 사실 오류는 오류 메시지에 정답이 있는 경우가 많다. 이 경우에도 다 해결하고 보니까 메시지에 답이 있었음. ORA-12514: TNS:listener does not currently know of service requested in connect descriptor ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 리스너가 현재 접속기술자에 요청된 서비스를 알지 못함 처음에는 TNS 정보가 잘못된건가 했는데 내용을 보면 리스너 연결에 실패했다는 .. 2023. 10. 31.
[ORACLE] INTERVAL 함수 사용 시 ORA-01839 date not valid for month specified 오류 발생 변경한 적 없는데 갑자기 ORA-01839 date not valid for month specified 오류가 발생한다면 오늘이 몇 일인지 확인해보자. 날짜가 29일로 끝나는데 2월 언저리의 날짜를 계산 결과로 반환한다면 백프로 2월 29일로 결과값이 떨어져서임 ㅠㅠ SYSDATE - (INTERVAL '6' MONTH) 특정한 몇 개월 전의 날짜를 계산하는 로직이 있거나 SYSDATE - (INTERVAL '1' YEAR) 형태로 1년 전 또는 몇 년전 날짜를 계산하는 로직이 있을 때도 발생할 수 있다. 해결 방법은 간단하다. INTERVAL로 되어있는 내용을 ADD_MONTHS로 바꿔주자. INTERVAL의 경우 직관적으로 며칠, 몇 개월, 몇 년 단위의 계산인지를 볼 수 있는 장점이 있지만 이런 .. 2023. 8. 29.
[Oracle] 시퀀스값 일괄 증가, Sequence NEXTVAL 반복 수행 자주 쓰는 쿼리인데 매번 까먹어서 박제해놓고 나중에 내가 찾아보려고 간만에 블로그 글 작성 최근에 DB 데이터를 엎었는데 RAW 데이터만 엎어주고 SEQ 값 일치등의 Object 값 조정은 안해줘서 종종 아래와 같은 에러가 발생함 java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (테이블 PK명) violated 해당 오류 해결을 위한 방법 두 가지를 소개한다 방식1. Alter 기능을 통한 Sequence 값 조정-- alter 권한이 있는 경우 사용 가능 ALTER SEQUENCE 시퀀스명 INCREMENT BY 증가되길 원하는 수; SELECT 시퀀스명.NEXTVAL FROM DUAL; ALTER SEQUE.. 2023. 7. 6.
[ORACLE] 객체 참조를 위한 SYNONYM 생성 및 사용 방법 Oracle 유저별로 관리하고 있는 테이블이나 뷰 등 객체를 다른 유저에서 참조해야 하는 경우가 있다. 나의 경우는 인터페이스를 담당하는 쪽에서 우리 데이터를 봐야한다고 해서 계정을 공유해달라고 한 일이 있었다. 어차피 같은 회사에서 요청왔으니 계정 정보를 공유해도 되겠지만.. 두어개 테이블 보여주자고 계정정보를 주면 어디에 접근할지도 모르고 문제 생기는 경우 발뺌하고 모른척하는 아찔한 경험을 할 수도 있다. 여튼 그런 위험을 감수하고 싶지 않아서 DBA 통해서 계정부터 분리했다. 이렇게 분리한 계정에 GRANT 명령어를 통해 접근을 요청한 특정 테이블과 뷰에 조회 및 업데이트를 위한 권한을 부여했다. 계정명.객체명 의 형태로 작성하여 접근하는 방식을 사용하고 있었는데, 이렇게 되는 경우 계정명과 테이블.. 2021. 11. 29.
[AWS] ubuntu에서 MariaDB 설치 및 기본 설정하기 설정하는 김에 나중에 미래의 내가 참고하려고 쓰는 내용들 기본적으로 AWS는 프리티어로 제공하는 EC2를 가져다 쓰고 있으며, OS는 Ubuntu를 선택했고 기본적인 인스턴스를 생성한 뒤의 단계부터 진행하도록 한다. [참고정보] Ubuntu version 18.04.5 LTS ubuntu 버전 확인 방법 cat /etc/issue 1. DB 설치 전 timezone 설정 확인 및 변경 MariaDB를 설치하기 전 기본적으로 시스템 내에 설정된 timezone을 확인하자. 기본적으로 date 명령어를 치면 시간과 함께 뒤쪽에 설정된 timezone 정보가 나오게 되는데 UTC로 뜨게 되면 미국 시간 기준으로 설정되어있는 상태이다. 아래 명령어를 통해 timezone을 원하는 대상 (Asia/Seoul) 으.. 2021. 5. 14.
[Oracle] 순위 결정을 위한 ROW_NUMBER, RANK, DENSE_RANK 함수 사용법 비교 목록을 표시할 때 기존의 SEQ가 아닌 목록 반환 결과에 따른 별개의 목록번호를 반환하고자 하는 경우가 있다. 순차적으로 증가하는 순번을 말하는거라면 정렬 기준만 명확하다면 구성에 큰 무리가 없는데, 만약 순위를 나타내는 번호를 만들어내고 싶다면 이야기가 조금 달라진다. 운동 경기마다도 각자의 룰이 있을텐데 동점인 팀이 두 팀일 때, 둘 다 1등으로 처리하고 그 다음 순위를 2등으로 하는 경기도 있겠지만 1등이 두 팀일 때 그 다음 순위는 3위부터 시작하는 게임도 있을거다. 오늘은 oracle에서 순위를 반환할 수 있는 함수에 대해 알아보고 각 쓰임을 비교해보고자 한다. [Oracle] 순위 결정을 위한 ROW_NUMBER, RANK, DENSE_RANK 함수 사용법 비교 순위 결정을 위한 함수에는 RO.. 2021. 1. 27.
[Oracle] 19c Upgrade : 전환 시 고려사항 EOS를 앞둔 서비스를 사용하고 있는 것은 운영입장에서 매우 아슬아슬한 일이다. 교체에 많은 시간과 비용이 들기 때문에 연초 계획을 잡을 때 반드시 생각해야 하는 중요한 부분이기도 하고. 올해 가장 이슈가 될 대상은 2020년 12월까지만 Flash Player 일 것이다. OS나 소프트웨어 버전도 EOS를 타기 때문에 각 담당들은 최소한의 비용과 시간으로 이를 해결하기 위해 고군분투할 것으로 생각된다. (시간 드는 것보다 비용 드는 것에 매우 민감하므로 ^_ㅜ) 아 물론 EOS가 이미 도래한 서비스를 계-속 사용하는 경우도 왕왕 봤다. 이번에 포스팅 할 대상은 올해 초 전환작업을 했던 Oracle 19c 버전 업그레이드와 관련한 내용이다. 사실 5월에 작성하다가 임시 저장해둔 글을 발견해서 이제서야 마.. 2020. 10. 11.
[Oracle] 특정 값 기준으로 정렬하기 정렬을 요청하는 이유는 대부분 원하는 형태로 값이 출력되길 원해서이다. 이번에 요청받은 대상은 특정값을 파라미터로 전달받아서 해당 사항이 먼저 출력되도록 해달라는 내용이었다. 이런 경우에는 다른 정렬 방식은 그대로 고정해야하므로, 파라미터로 전달받은 대상으로 우선 정렬할 수 있는 정렬값을 둔 뒤 기존의 정렬 방식으로 정렬하도록 진행을 하고자 했다. 원래 기존의 정렬 순서가 아래와 같았다고 가정하자. ORDER BY seq DESC 저장된 시퀀스의 역순으로 정렬하는 것이 기존의 방식이었다면, 추가로 요청받은 사항은 board_type 의 값을 파라미터로 전달받아 일치하는 대상을 우선적으로 정렬해달라는 요청이었다. board_type 필드에 A, B, C, D라는 값이 있다. URL의 get paramete.. 2020. 3. 31.
INSERT 시 Duplicate entry 에러가 발생한다면? : INSERT INTO ON DUPLICATE KEY UPDATE 블로그 통계에서 제일 조회수가 많은 것들은 모두 가장 기본적인 부분이다. 그래서 오늘은 기초적이면서도 헷갈리는 내용에 대해서 작성해볼까 하는데 바로 INSERT / UPDATE와 관련된 내용이다. 분명 언젠가 INSERT와 관련된 내용을 포스팅했던 기억이 나는데, 아니나 다를까 찾아보니 INSERT 구문에 대해 mysql document를 보면서 정리해놓은 내용이 있더라... 포스팅에 부지런했던 나의 과거 ^_ㅜ 2011/07/07 - [DataBase/MySQL] - DML(Data Manipulation Language) - INSERT 사용에 대해서 DML(Data Manipulation Language) - INSERT 사용에 대해서 데이터베이스를 사용할 때 가장 많이 사용하게 되는 DML 문에 .. 2019. 5. 24.
[NoSQL] 키-값 데이터베이스 NoSQL DB 중 먼저 알아볼 대상은 키-값 데이터베이스다. 가장 대표적이고 가장 단순한 구조의 데이터베이스다. [NoSQL] 키-값 데이터베이스 / Key-Value Database or Key-Value store 단순한 구조인 만큼 많은 기능을 제공하지는 않으나, 단순성으로 인해 얻는 이점이 있다. 단순성 simplicity 고유의 키를 통해 값을 가져온다는 단순한 구조의 형태이다. 단순한 구조이므로 구현이 쉽다는 장점이 있으나 기능상 다양한 기능을 기대하기는 어렵다. 값의 일부를 검색한다거나 조인을 통해 복잡한 연산 등은 불가능하다. 값에 대한 타입 제한이 없으므로 원하는 형태의 데이터를 입력할 수 있다. 또한 복잡하지 않으므로 결과적으로 빠른 연산을 기대할 수 있다. 속도 speed 단순성으로.. 2019. 4. 16.
반응형