안녕하세요 초보같은 질문일지 모르겠지만 선배님들 답변좀 부탁드립니다.
테이블에 insert 할 때 칼럼의 데이터 타입보다 크면 에러가 납니다.
CREATE TABLE [dbo].[temp1] (
[item_code] varchar(6) NOT NULL,
[item_nm] varchar(8) NOT NULL,
[qty] numeric(7, 0) NULL)
temp1 테이블에
insert into temp1 select '001001', '무궁화꽃이피었습니다',30
->item_nm 이 varchar(8) 이라 에러가 납니다.
insert into temp1 select '001001',substring('무궁화꽃이피었습니다',1,1), 30
->이 방법을 생각해봤지만 substring은 data길이하고는 무관해 정확하지않고..
이것을 자동으로 data타입의 길이만큼 잘라 insert 하는 방법이 있을까요???
몇만건의 상품정보 를 txt파일로 내려받아 DB에 insert 하는 작업을 해야하는데..
상품명이 datatype의 길이를 넘는 중간중간에 상품명이 있어 insert중에 에러가 납니다.
txt파일을 직접 수정하는 방법 말고 sql상에서 조치할 수 있는 방법이 있을까요??
1. 저장프로시저를 사용해보세요.
테이블에 직접 추가할때는 길이때문에 에러가 발생하지만 변수에 대입하면 그 길이만큼 잘립니다.
2. BCP를 이용해서 임시테이블에 몽땅 넣은 다음 적당히 잘라내고 삽입하세요.