Database 22

MS-SQL) MSSQL Excel 엑셀 데이터 가져오기 열 잘림 오류

MS-SQL에서 엑셀 데이터를 가져올때 흔히 발생하는 오류인 열 잘림 오류    실행 중 (Error)Messages오류 0xc020901c: 데이터 흐름 태스크 1: 원본 - Sheet1$.출력[Excel 원본 출력]의 원본 - Sheet1$.출력[Excel 원본 출력].열[content]에 오류가 있습니다. 반환된 열 상태는 "텍스트가 잘렸거나 하나 이상의 문자가 대상 코드 페이지와 맞지 않습니다."입니다. (SQL Server 가져오기 및 내보내기 마법사) 오류 0xc020902a: 데이터 흐름 태스크 1: 잘림이 발생했기 때문에 "원본 - Sheet1$.출력[Excel 원본 출력].열[content]"이(가) 실패했으며 "원본 - Sheet1$.출력[Excel 원본 출력].열[content]"에서..

Database/MS-SQL 2024.03.21

MSSQL) MyBatis와 프로시저 update/insert 사용시 결과 값 받기. -1이 반환될때, MyBatis + Procedure

어느때와 같이 쿼리문을 수정하고 있는데, insert/update문에서 계속 -1을 반환하는 현상을 만났다. MyBatis에서 insert/update문은 성공시 1 또는 반영된 컬럼수를 반환하고, 실패시 0을 반환하기에 결과값이 1이상이면 성공, 0이면 실패로 구분하여 판단했었는데, DB에 결과가 잘 반영되어 성공했는데도 계속 -1을 반환했다. 일반쿼리와 다른점은 바로 프로시저를 호출한다는 것이었다. 문제였던 코드 DECLARE @result int SET @result = 0 EXEC 프로시저명 #{title} , #{content} , @result output *output : 데이터를 처리한 후 결과 값을 받는 파라미터. 처리 후 결과 값을 output 지정한 파라미터에 담아서 반환한다. 원인 ..

Database/MS-SQL 2023.10.26

MSSQL) 계산 및 형변환 float -> int로 변환 시 1씩 차이나는 현상

특정 상품의 정가와 할인률을 계산하여 할인된 가격을 보여주려는데 종종 1원씩 차이나는 현상이 발생했다.  예를들어 10,000원에서 10%할인이 들어가면 9,000원이 나와야하는데 9,001원이 나오는 현상.... 구글링을 해도 잘 안나오고 겪어보지 않으면 절대 모를 일이기에 일단 정리해두려고 한다. (mssql이 사용 비중이 별로 없어서 그런것 같기도 하다.... 아마 이 글도 찾는 사람이 있을까 싶긴한데) 테스트해보니 mssql에서 float 형식을 int로 변환할 때 1씩 값이 증가되는 것을 보았다.  이건 형변환 할때도 마찬가지지만, float결과물을 int 타입의 컬럼에 insert할때도 마찬가지다.  분명 9,0000을 insert했는데, 컬럼 타입이 서로 다르면 9001로 들어가 있다.  그..

Database/MS-SQL 2023.07.27

MS-SQL) 해당 테이블을 사용하는 프로시저 조회하기, 특정 단어를 포함하는 프로지서 조회하기

1. 해당 테이블을 사용하는 프로시저 조회 select so.name from dbo.syscomments sc with(nolock) inner join dbo.sysobjects so with(nolock) on sc.id = so.id where so.xtype in ('p', 'fn') --> p : 저장프로시저, fn : 스칼라함수 and sc.text like '%테이블 이름%'; 2. 특정 단어를 포함하는 프로시저 조회 SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id) FROM sys.procedures WHERE OBJECT_DEFINITION(object_id) LIKE '%찾고싶은 단어%'

Database/MS-SQL 2022.09.26

Oracle DB) 단일 행 함수 - 숫자함수: 반올림, 버림, 나머지

1. 숫자함수 1) round(숫자, 자릿수): 반올림 round(45.929, 2)# 45.93 round(45.900, -1)# 50 2) trunc(숫자, 자릿수) : 버림 trunc(45.929, 2)# 45.92 trunc(45.999)# 45 trunc(45.999, -1)# 40 3) MOD(숫자, 나눌 수) : 나머지 반환 2. DUAL 테이블 테이블과 상관없이 일회성의 계산 결과 등을 할때 사용한다. 실 소유자는 sys지만, 모든 유저가 사용할 수 있게 제공해놓은 테이블이다. dual테이블 보기 desc dual#컬럼명 보기 select * from dual;# 값 보기 계산해보기 select 12*3000+100 as value from dual; 연습문제 1) employees 테이블..

Database/Oracle 2022.04.12

MySQL) 에러 Before start of result set

result set의 시작 전 오류. 이게 무슨말일까.. 하고 찾아보니 rs = pstmt.executeQuery(); topName = rs.getString(1); 위의 문장때문이었다. select 쿼리 결과가 ResultSet 형태로 반환되는데, select 쿼리 결과가 100%있을거라 생각하고 rs.next()를 삭제한 것이다. 하지만, select구문이 제대로 실행안될 수도 있고, resultSet은 cusor point를 반드시 다음으로 옮겨야 데이터를 읽어올 수 있다. 따라서 rs.next() 함수가 빠졌으면 적어야한다. rs = pstmt.executeQuery(); if(rs.next()) { topName = rs.getString(1); }

Database/MySQL 2022.04.08
반응형