DataBase

    [Oracle] ORA-01008 : not all variables bound

    개발를 완료한 후에 담당자에게 회신하고, 다른 일을 하는 사이에 담당자에게 데이터를 수신받지 못했다고 연락이 왔다. 로그를 확인하니 에러가 발생했고, 에러 내용을 자세히 보니 'ORA-01008 : not all variables bound' 와 마주하게 되었다. 에러 내용은 선언하지 않은 변수를 value에 넣었기 때문에 발생하였다. INSERT INTO TABLE_NAME ( COLUMN1 , COLUMN2, COLUMN3 )VALUES( :COLUMN1, :COLUMN2, :COLUMN4 ) . . . . 즉, 위처럼 에서 COLUMN4는 선언되지 않았지만 매핑이 되어있다. 아래처럼 잘못 매핑한 컬럼(COLUMN4)을 선언한 컬럼(COLUMN3)으로 수정해주면 에러가 해결된다. INSERT INTO..

    [MariaDB] Truncated incorrect decimal value ''

    최근에 MariaDB를 사용하는 시스템의 DB 업그레이드 작업이 있었다. 업그레이드 작업이 끝난 후에 MQ 가 정상적으로 되고 있는지 모니터링을 진행한 후 에러없이 작동한다고 판단하고 모니터링을 종료하였다. 업그레이드 작업이 끝나고 2주정도 지났는데 해당 서버 담당자한테 데이터가 I/F가 되지않는다는 연락을 받고 확인해보니 해당 테이블에서 에러가 발생하고 있었고, 해당 내용을 수정한 내용을 적고자 한다. DB 업그레이드를 하기 전에는 정상적으로 데이터의 송수신이 이루어지고 있었는데, DB 업그레이드 이후 에러가 발생한 이유를 살펴보기 위하여 소스를 살펴보았다. 보통 Date은 형변환을 하기 때문에 STR_TO_DATE() 메서드를 사용해서 Insert를 한다. 그래서 형변환 메서드는 자주 목격할 수 있는..

    [DataBase] 기본 키를 여러 개 설정한다고??

    지금까지 다룬 서비스 중에 가장 큰 서비스는 취업을 위해 개인적으로 진행한 일정 관리 프로그램이었다. 그래서 데이터의 개수도 작았고 테이블의 컬럼도 상대적으로 많이 약소했다. 현재 서버 개발자로 업무를 하고 있진 않지만 데이터가 잘 이동할 수 있도록 개발을 하고 있기 때문에 데이터와 관련 있는 업무를 진행하고 있다. 그러면서 많은 테이블의 컬럼을 보면서 필자가 이제까지 설계한 테이블과 다른 점을 한눈에 파악할 수 있었는데 그중에서 눈에 띈 것이 바로 Primary Key(기본키)였고 이번 포스팅에서 기본키에 대해 알아보려고 한다. 기본키란? 필자가 쓰고자 하는 내용에 앞서 먼저 기본키가 무엇인지에 대해 아는 것이 먼저인 것 같아 기본키에 대해 설명하면 이름에서 말하듯 기본이 되는 키다. 정말 성의 없는 ..

    [DataBase] 정규화에 대해 알아보자!

    이전 포스팅에서 정규화 과정으로 쪼개 놓은 테이블을 사용하기 위해 Join을 사용한다는 것을 알게 되었다. 이전부터 정규화에 대해 알고 있었지만 이렇게 정리를 해놓으면 오래 기억되기 때문에 이번 포스팅에서는 정규화에 대해 알아보려고 한다. [DataBase] Join을 왜 써야 하지?(+ Join 종류) 조인(Join)이란? join의 사전적 정의를 보면 '연결하다', '잇다', '합쳐지다' 등등 어느 하나와 다른 하나를 더하는 의미를 가지고 있다. 마찬가지로 데이터 베이스에서 join의 의미도 하나의 테이블 gwamssoju.tistory.com 정규화란? 정규화는 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 일컫는다. 정규화 과정을 통해 중복된 데이터를 허용하지 않음..

    [DataBase] RDBMS VS NoSQL

    처음 데이터 베이스에 대해 배울 때, Oracle을 배웠기 때문에 모든 데이터 베이스가 Oracle과 같은 줄 알았다. 하지만 정보처리기사를 준비하면서 Oracle 같은 관계형 데이터베이스만 있는 게 아니라 NoSQL이라는 것도 있다는 것을 알게 되었고 이번에 정리해보는 기회를 가지려고 한다. 기본 개념 DataBase란? → 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리하는 데이터의 집합. DBMS란? → DataBase Management System의 줄임말로, 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터 베이스를 관리해주는 소프트 웨어이다. SQL이란? → Structured Query Language의 줄임말로, 관계형 데이터베이스에 저장된 데이터를 관..

    [DataBase] Join을 왜 써야 하지?(+ Join 종류)

    조인(Join)이란? join의 사전적 정의를 보면 '연결하다', '잇다', '합쳐지다' 등등 어느 하나와 다른 하나를 더하는 의미를 가지고 있다. 마찬가지로 데이터 베이스에서 join의 의미도 하나의 테이블과 다른 하나의 테이블을 더하는 것으로 볼 수 있다. 그러면 문뜩 '하나의 테이블에 다 집어넣고 사용하면 되는데 굳이 Join이라는 키워드를 써야 되는가'라는 의문점이 생긴다. 사실 조인을 사용하는 이유는 '정규화' 과정 때문이다. 정규화란? 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스 쉽게 말해서 불필요한 데이터의 정합성을 확보하고 이상 현상의 발생을 피하기 위해 테이블을 분할하여 생성하는 것을 일컫는다.정규화를 위해 분할한 테이블을 조합해서 사용하기 위해 조인(jo..