반응형 DataBase/ORACLE9 [트러블슈팅] 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. [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. ORACLE에서 LONG 열에만 입력할 수 있다고 할 때는? 프로그램을 다루면서 Oracle DB에 데이터를 넣을 때.... ORA-01461: LONG 값은 LONG 열에만 입력할 수 있습니다 라는 오류를 만났다면, 첫 번째로 의심해야 하는 내용은 VARCHAR2(4000)으로 잡혀있는 컬럼에 그 이상의 값이 들어간 것! 그리고 두 번째로 의심해야 될 내용은 CLOB에 들어가는 데이터가 CLOB의 형태로 들어가지 않는다는 것. 처음에 저 오류를 마주했을 때는 데이터 타입이 VARCHAR2(4000)으로 잡혀있었나? 하며 DB 구조를 살펴보니 CLOB이라고 너무나도 당연하게 써 있는 것에 조금 벙쩌있었져 ㅠ_ㅠ CLOB이면서 왜 데이터를 받지를 못하니... Editor를 사용하여 HTML 태그가 들어간다거나 정~~~말 긴 글을 입력하게 되는 경우 이런 오류를 본 .. 2013. 2. 4. 계층형 메뉴 트리 정렬하기 엄청나게 오랜만에 포스팅을 작성하니 감회가 새롭네요 ㅠ_ㅠ 그것도 2012년을 하루 남기고! 오늘은 계층형 메뉴 트리를 정렬하는 쿼리에 대해 소개합니다.이에 앞서 메뉴 트리 테이블의 구조를 보여드리면 다음과 같습니다. 컬럼명 설명 MENU_CODE 메뉴가 가지는 고유의 일련번호 (PK) MENU_TITLE 메뉴 이름 MENU_URL 메뉴를 눌렀을 때 연결되는 URL 주소값 MENU_PARENT ★ 메뉴의 부모 값 (계층 구조를 이루게 하는 요소) ★ MENU_SEQ 메뉴 정렬 순서 MENU_LEVEL 메뉴 계층구조의 깊이 (값이 클수록 하위 메뉴) MENU_VISIBLE 메뉴 사용여부 (이 컬럼은 없어도 무관합니다) 위의 컬럼을 가지고 있다는 전제하에 어떤 식으로 계층형 메뉴 트리를 정렬하는 지 설명드리.. 2012. 12. 31. 이전 1 다음 반응형