[SQL] 변수 파일 이름으로 대량 삽입
SQL변수 파일 이름으로 대량 삽입
난 SQL 서버 2005를 사용하는 DB에 대량 삽입을 시도하고있다
아래는 코드입니다.
declare @path varchar(500)
set @path = 'E:\Support\test.csv';
Create table #mytable( name varchar(max), class varchar(max), roll varchar(max) )
BULK INSERT #mytable FROM @path <-- Error line
WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' );
Go
select * from #mytable
drop table #mytable
문제 : 문제는 내 파일 경로가 동적이다와 작동하지 않는 대신 하드 코딩의 변수에서 온다 작동 아래에 난 오류 라인을 변경하는 경우
BULK INSERT #mytable FROM 'E:\Support\test.csv';
이 문제를 해결하는 방법을 알려 주시기 바랍니다
해결법
-
==============================
1.동적 SQL을 사용해보십시오 :
동적 SQL을 사용해보십시오 :
declare @sql varchar(max) set @sql = 'BULK INSERT #mytable FROM ''' + @path + ''' WITH ... exec (@sql)
-
==============================
2.
DECLARE @path varchar(50) = 'D:\ARQUIVOS_CARGAS\CABOS\FILE.prn' DECLARE @SQL_BULK VARCHAR(MAX) SET @SQL_BULK = 'BULK INSERT #TAB FROM ''' + @path + ''' WITH ( CODEPAGE = ''ACP'', FIRSTROW = 1, FIELDTERMINATOR = ''tab'', ROWTERMINATOR = ''0x0a'', KEEPNULLS )' EXEC (@SQL_BULK)
from https://stackoverflow.com/questions/5547393/bulk-insert-with-variable-file-name by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 엔티티 프레임 워크 - 테이블이 존재하는지 확인하는 방법? (0) | 2020.07.03 |
---|---|
[SQL] SQL의 경우 문, 어떻게 여러 변수를 반환? (0) | 2020.07.03 |
[SQL] SQL 서버 AS 문 WHERE 문 내에서 열을 별칭 (0) | 2020.07.03 |
[SQL] 콜렉션의 크기가 0 또는 비어있는 경우 쿼리 HQL 확인하기 (0) | 2020.07.03 |
[SQL] 제약 조건은 DEFERRABLE이 INITIALLY IMMEDIATE 여전히 지연됩니다 정의? (0) | 2020.07.02 |