저는 데이터웨어 하우스에서 일하고 있습니다.SSIS의 SQL 작업에서 매개 변수를 사용하는 방법?
날짜 항목 (예 : SSAS 마법사가 있지만 내 SSIS ETL 프로세스에 직접 작성)을 작성하여 로드맵에 스크립트를 작성했습니다. 이것은 SSMS에서 잘 작동하고 매개 변수를 사용하지 않고 SSIS의 T-SQL 작업에서 직접 작동합니다. 이 스크립트는 ResultSet을 제공하지 않습니다. 이것은 테이블에 데이터를 삽입하는 루프 일뿐입니다.
다음은 내 쿼리의 간단한 모양입니다.
USE [MySQLServerDatabase]
GO
-- Some parameters used by the script.
DECLARE @PREFIX_YEAR_NAME [nvarchar](50) = 'Year ';
DECLARE @PREFIX_QUARTER_NAME [nvarchar](50) = 'Q';
DECLARE @PREFIX_WEEK_NAME [nvarchar](50) = 'W';
DECLARE @PREFIX_MONTH_NAME [nvarchar](50) = 'M';
DECLARE @DefaultBeginDate [datetime] = '01/01/2000';
DECLARE @Date [datetime];
SET @Date = @BeginDate
WHILE @Date <= @EndDate
BEGIN
-- ...
-- INSERT INTO ...
END
-- ...
그러나 좀 더 사용하기 쉽고 유지 관리하기 위해 SSIS 변수를 스크립트에서 직접 사용하고 싶습니다.
내 params (Project.params 파일)입니다. 내 스크립트가 모두 작동해야합니다 :
을 그리고, 나는 내 SQL 쿼리를 포함하는 "SQL 작업 구성 요소를 실행"(OLEDB 연결, 직접 입력 방식)을 추가했다.
어떻게 SQL 쿼리 매개 변수를 사용하는 : 내 5 개 매개 변수를 만들어? 스크립트의 변수와 동일한 이름을 사용하려고했으나 작동하지 않습니다. 인덱스 (0,1,2 등) 이름을 사용하고 '?' 스크립트에서 나는 작동하지 않습니다.
'?'을 사용할 때의 오류는 다음과 같습니다. 매개 변수 :
Error: 0xC002F210 at Execute SQL Task, Execute SQL Task: Executing the query " DECLARE @PREFIX_YEAR_NAME nvarchar = ?; D..." failed with the following error: "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly. Task failed: Execute SQL Task
어떤 문제를 해결할 수 있습니까?
감사합니다.
?와 함께 사용한 sql 스크립트를 게시 할 수 있습니까? 매개 변수로? –