2014-07-22 3 views
0

SSIS를 처음 사용하므로이 질문에 사소하거나 이미 대답 한 경우 용서해주십시오. 내 데이터 액세스 모드로 SQL 명령을 내 OLE DB 원본 편집기에 넣고SSIS의 SQL 변수 변경

declare @start datetime, @end datetime, @startMonth datetime, @endMonth datetime, @maxHoursToRespond int 
    ----Set These------------------------------------------------ 
    set @end='6/27/2014' 
    set @maxHoursToRespond=24      
    ------------------------------------------------------------- 
    set @start=dateadd(dd, -90, @end) -- set duplication period 
    set @startMonth=dateadd(dd, -2, @end)-- set to start date of output you want 
    set @endMonth=dateadd(dd, -1, @end) -- set to day of end date of output you want 

, 모든 변수가 물음표로 바뀝니다 : 그래서 다음과 같이 시작하는 SQL 쿼리를 가지고있다. 이 happening.I'd도 내가 얻을 현재 (쿼리가 성공적으로 구축 할 수 있도록하는 방법을 알고 싶은 이유 쿼리에서

DECLARE ? datetime, ? datetime, ? datetime, ? datetime, ? int 
/*--Set These------------------------------------------------*/ SET ? = ? 
SET   ? = 24 
/*-----------------------------------------------------------*/ SET ? = dateadd(dd, -  90, ?) 
SET   ? = dateadd(dd, - 2, ?) 
SET   ? = dateadd(dd, - 1, ?) 

알고 싶은 builder.I'd : 그것은처럼 보인다 "Declare SQL 구문 또는 문이 지원되지 않습니다."라는 구문 오류가 발생합니다. SSIS 자체에서 이러한 변수 (예 : @start)를 만들어야합니까?

+0

여기 SSIS 매개 변수 및 변수에 대한 주제는 https://www.simple-talk.com/sql/ssis/ssis-basics-introducing-variables/ – Darka

+0

이고 'Execute SQL Task'를 사용해야합니다. 여기에 몇 가지 추가 정보가 있습니다 https://www.simple-talk.com/sql/ssis/ssis-basics-using-the-execute-sql-task-to-generate-result-sets/ – Darka

답변

1

당신은 할 수 있습니다

  1. 는 다음 EXEC와 SQL 실행 작업에서 저장 프로 시저를 내부적으로 (변수 값은 정적 가정) 선언을 모두 포함하는 저장 프로 시저에서 SQL 전화를 캡슐화합니다. EXEC My_Stored_Procedure
  2. 변수를 입력으로 받아들이고이를 SSIS의 변수에 매핑 한 다음 Exec My_Stored_Proc ?,?,?,? 같은 저장 프로 시저를 실행하여 해당 저장 프로 시저 변수에 매핑 된 사용자 변수로 실행합니다.
  3. 쿼리를 그대로두고 DECLARE와 SET를 제거하고 SSIS 변수를 쿼리에 매핑합니다. 이것은 SSIS가 어느 것을 알지 못하기 때문에 작동하지 않을 가능성이 가장 큽니까?

숫자 2는 일반적으로 허용되는 방법입니다. 변수 값을 테이블이나 숫자에 액세스 할 수있는 SP에 저장하지 않으면 숫자 2가 일반적으로 허용되는 방법입니다. 그 경우의 수를 1 청소기 수 있습니다.

1

내가 OLE DB Source Editor과 변경 아무것도 똑바로 SQL command text 당신의 스크립트에 붙여있다. Parse Quesry..을 누르면 내가 SQL이 올바른지 확인. 내가 Build Query..을 사용하려고 할 때, 그것은 말했다 DECLARE은 지원되지 않으므로 빌더를 사용하지 마십시오.

enter image description here