본문 바로가기

MSSQL4

[MSSQL]Insert시 Data truncated for column 'date' at row 1 경고(feat.REPLACE()) 🔍 Data truncated for column 'date' at row 1 발생원인 보통 자료형의 범위를 넘는 큰 데이터를 삽입했을 때 발생한다. 나의 경우 컴포넌트로 인해 숫자에 컴마(,)가 자동으로 포맷팅 돼서 정수 값이 String값으로 변환 되었다. → DB데이터 형과 들어온 값의 자료형이 달라서 삽입할 때 에러가 발생했다. 💡 Data truncated for column 'date' at row 1 해결 , REPLACE(#{forwardFee}, ",", "") , REPLACE(#{forwardTax}, ",", "") 위와 같이 ","를 ""로 REPLACE() 해주어 해결했다. 2024. 1. 23.
[MSSQL]datetime타입의 컬럼에 Null값을 Insert할 때 1999-01-01이 들어가는 현상과 해결법 🔍 현상 NULL을 허용하는 VALIDITY_DATE 컬럼에 데이터 값을 입력하지 않고 저장을 시켰는데 위와 같이 1900-01-01데이터가 삽입되었다. 💡 해결 처음엔 ISNULL로 해결을 해보려고 했으나... 1900-01-01이 들어가는건 마찬가지여서 IFNULL을 사용해 해결했다. INSERT INTO T_TEMP_TABLE ( MAIN_CD , VALIDITY_DATE . . . ) VALUES ( #{mainCd} , IIF(#{validityDate} = '', NULL, #{validityDate}) . . .) select 할때도 datetime타입의 데이터가 NULL인경우에는 1900-01-01가 뿅 튀어나와서 애를 먹었었는데 이 부분은 따로 정리를 해야겠다. 2024. 1. 10.
[DB] 키 값, 유일한 값, 고유한 값 만들기(Identity 값, MAX + 1, ROW_NUMBER()) 데이터베이스 테이블에 키 값이나 유일한 값을 넣을 때 사용하고 있는 방법들을 정리해보았다. 상황에 따라 더 효율적인 방법을 사용해야 하기때문에 긴가민가 할때에는 선배들에게 조언을 구한 뒤 사용한다. 개발 경험과 공부가 더 필요할 것 같다. Identity 값 주로 primary key역할을 하는 컬럼에 할당되는 값으로 새로운 레코드가 추가될 때마다 자동으로 증가하는 고유한 값을 생성한다. 우리는 기본키로는 사용하지 않고, 그리드에 뿌려 특정 행을 잡을 때 사용한다. DB마다 상이한 채번룰을 사용하는데 몇개의 예시를 들어보자면 아래와 같다. MySQL CREATE TABLE temp_table ( ID INT AUTO_INCREMENT PRIMARY KEY ); MSSQL CREATE TABLE temp_.. 2023. 11. 3.
[MSSQL] IN절을 사용해 데이터 출력하기 - 잘못된 사용자 데이터 추출 전체 데이터 중 특정 정보(데이터)가 입력되지 않은 데이터만을 출력하는 일을 받았다. 고객사의 IT 관리자가 필요한 사용자정보를 입력하지 않은 사용자들을 파악해 관리하기 위함이었다. 메인화면의 카드를 통해 해당 페이지에 들어가게 되면 전체 사용자 정보 중에서 필요한 사용자 정보를 입력하지 않은 데이터만 출력하는 방식이다. 페이지를 새로 제작하는 것이 아니라 조건에 따라 보이는 데이터를 변경해줘야 했고, 기존 화면에 존재하는 데이터들은 영역별/그리드 별로 쿼리를 따로 불러와 출력하는 상황이었기 때문에 고민을 많이 했다. 우선 필요한 사용자 정보를 입력하지 않은 데이터(이하 에러 데이터)를 가져오는 조건을 부여하기 위해 검색조건에 errorYn이라는 필드를 추가했다. 카드를 클릭해서 해당 페이지에 접근하게 .. 2023. 10. 27.
728x90