다음을 통해 공유


Integration Services(SSIS) 변수

적용 대상: Azure Data Factory의 SQL Server SSIS Integration Runtime

변수는 SQL Server Integration Services 패키지와 해당 컨테이너, 태스크, 이벤트 처리기가 런타임에 사용할 수 있는 값을 저장합니다. 스크립트 태스크 및 스크립트 구성 요소의 스크립트도 변수를 사용할 수 있습니다. 작업 및 컨테이너를 워크플로로 시퀀스하는 선행 제약 조건은 제약 조건 정의에 식이 포함될 때 변수를 사용할 수 있습니다.

다음 용도로 Integration Services 패키지에서 변수를 사용할 수 있습니다.

  • 패키지 요소의 속성을 런타임에 업데이트합니다. 예를 들어 Foreach 루프 컨테이너에서 허용하는 동시 실행 파일 수를 동적으로 설정할 수 있습니다.

  • 메모리 내 조회 테이블을 포함합니다. 예를 들어 패키지는 데이터 값이 있는 변수를 로드하는 SQL 실행 태스크를 실행할 수 있습니다.

  • 데이터 값을 사용하여 변수를 로드한 다음 이를 사용하여 WHERE 절에서 검색 조건을 지정합니다. 예를 들어 스크립트 태스크의 스크립트는 SQL 실행 태스크에서 Transact-SQL 문에서 사용하는 변수 값을 업데이트할 수 있습니다.

  • 정수로 변수를 로드한 다음 이 값을 사용하여 패키지 제어 흐름 내에서 루핑을 제어합니다. 예를 들어 For 루프 컨테이너의 평가 식에서 변수를 사용하여 반복을 제어할 수 있습니다.

  • 런타임에 Transact-SQL 문의 매개 변수 값을 채웁니다. 예를 들어 패키지는 SQL 실행 태스크를 실행한 다음 변수를 사용하여 Transact-SQL 문에서 매개 변수를 동적으로 설정할 수 있습니다.

  • 변수 값이 포함된 식을 작성합니다. 예를 들어 파생 열 변환에서 변수 값을 열 값으로 곱하여 얻은 결과를 열에 채울 수 있습니다.

시스템 및 사용자 정의 변수

Integration Services는 사용자 정의 변수와 시스템 변수라는 두 가지 유형의 변수를 지원합니다. 사용자 정의 변수는 패키지 개발자가 정의하고 시스템 변수는 Integration Services에서 정의합니다. 패키지에 필요한 만큼 사용자 정의 변수를 만들 수 있지만 추가 시스템 변수는 만들 수 없습니다.

SQL 실행 태스크에서 변수를 SQL 문의 매개 변수에 매핑하는 데 사용되는 매개 변수 바인딩에는 시스템 변수와 사용자 정의 변수를 포함한 모든 변수를 사용할 수 있습니다. 자세한 내용은 SQL 실행 태스크매개 변수와 SQL 실행 태스크의 반환 코드를 참조하세요.

참고 항목

사용자 정의 변수 및 시스템 변수의 이름은 대/소문자를 구분합니다.

사용자 정의 변수는 패키지, Foreach 루프 컨테이너, For 루프 컨테이너, 시퀀스 컨테이너, 태스크, 이벤트 처리기와 같은 모든 Integration Services 컨테이너 유형에 대해 만들 수 있습니다. 사용자 정의 변수는 컨테이너의 변수 컬렉션의 멤버입니다.

SSIS 디자이너를 사용하여 패키지를 만드는 경우 SSIS 디자이너의 패키지 탐색기 탭에 있는 변수 폴더에서 변수 컬렉션의 멤버를 볼 수 있습니다. 폴더에는 사용자 정의 변수 및 시스템 변수가 나열됩니다.

사용자 정의 변수는 다음과 같은 방식으로 구성할 수 있습니다.

  • 변수의 이름과 설명을 제공합니다.

  • 변수에 대한 네임스페이스를 지정합니다.

  • 값이 변경될 때 변수가 이벤트를 발생시킬지 여부를 나타냅니다.

  • 변수가 읽기 전용인지 읽기/쓰기인지를 나타냅니다.

  • 식의 계산 결과를 사용하여 변수 값을 설정합니다.

  • 패키지 또는 태스크와 같은 패키지 개체의 범위에 변수를 만듭니다.

  • 변수의 값과 데이터 형식을 지정합니다.

시스템 변수에서 구성할 수 있는 유일한 옵션은 값이 변경될 때 이벤트를 발생시키는지 여부를 지정하는 것입니다.

각 컨테이너 유형에 따라 서로 다른 시스템 변수를 사용할 수 있습니다. 패키지 및 해당 요소에서 사용하는 시스템 변수에 대한 자세한 내용은 시스템 변수를 참조하세요.

변수의 실제 사용 시나리오에 대한 자세한 내용은 패키지에서 변수 사용을 참조하세요.

변수의 속성

변수 창 또는 속성 창에서 다음 속성을 설정하여 사용자 정의 변수 를 구성할 수 있습니다. 특정 속성은 속성 창에서만 사용할 수 있습니다.

참고 항목

시스템 변수에서 구성할 수 있는 유일한 옵션은 값이 변경될 때 이벤트를 발생시키는지 여부를 지정하는 것입니다.

설명
변수에 대한 설명을 지정합니다.

EvaluateAsExpression
속성이 True로 설정되면 제공된 식이 변수 값을 설정하는 데 사용됩니다.


변수에 할당된 식을 지정합니다.

이름
변수 이름을 지정합니다.

네임스페이스
Integration Services는 사용자시스템이라는 두 개의 네임스페이스를 제공합니다. 기본적으로 사용자 지정 변수는 사용자 네임스페이스에 있고 시스템 변수는 시스템 네임스페이스에 있습니다. 사용자 정의 변수에 대한 추가 네임스페이스를 만들고 사용자 네임스페이스의 이름을 변경할 수는 있지만, 시스템 네임스페이스의 이름을 변경하거나 시스템네임스페이스에 변수를 추가하거나 시스템 변수를 다른 네임스페이스에 할당할 수는 없습니다.

RaiseChangedEvent
이 속성을 True로 설정하면 변수에서 값을 변경할 때 OnVariableValueChanged 이벤트가 발생합니다.

읽기 전용
속성이 False로 설정되면 변수는 읽기/쓰기입니다.

범위

참고 항목

변수 창에서 변수 이동을 클릭해야만 이 속성 설정을 변경할 수 있습니다.

변수는 패키지의 범위나 패키지에 들어 있는 컨테이너, 태스크 또는 이벤트 처리기의 범위 내에서 생성됩니다. 패키지 컨테이너는 컨테이너 계층 구조의 맨 위에 있으므로 패키지 범위가 있는 변수는 전역 변수와 같이 작동하며 패키지의 모든 컨테이너에서 사용할 수 있습니다. 마찬가지로 For 루프 컨테이너와 같은 컨테이너 범위 내에 정의된 변수는 For 루프 컨테이너 내의 모든 태스크 또는 컨테이너에서 사용할 수 있습니다.

패키지 실행 태스크를 사용하여 패키지가 다른 패키지를 실행하는 경우 부모 패키지 변수 구성 유형을 사용하여 호출 패키지 또는 패키지 실행 태스크의 범위에 정의된 변수를 호출된 패키지에 사용할 수 있습니다. 자세한 내용은 패키지 구성을 참조하세요.

IncludeInDebugDump
변수 값이 디버그 덤프 파일에 포함되는지 여부를 나타냅니다.

사용자 정의 변수 및 시스템 변수의 경우 InclueInDebugDump 옵션의 기본값은 true입니다.

그러나 사용자 정의 변수의 경우 다음과 같은 조건이 충족될 때 시스템에서 IncludeInDebugDump 옵션을 false 로 다시 설정합니다.

  • EvaluateAsExpression 변수 속성이 true로 설정되면 시스템에서 IncludeInDebugDump 옵션을 false로 다시 설정합니다.

    디버그 덤프 파일에 식의 텍스트를 변수 값으로 포함하려면 IncludeInDebugDump 옵션을 true로 설정합니다.

  • 변수 데이터 형식이 문자열로 변경되면 시스템에서IncludeInDebugDump 옵션을 false로 다시 설정합니다.

시스템에서 IncludeInDebugDump 옵션을 false로 다시 설정하면 사용자가 선택한 값을 재정의할 수 있습니다.


사용자 정의 변수의 값은 리터럴 또는 식일 수 있습니다. 변수의 값은 null일 수 없습니다. 변수는 다음 기본값을 가질 수 있습니다.

데이터 형식 Default value
부울 False
숫자 및 이진 데이터 형식 0(영)
문자 및 문자열 데이터 형식 (빈 문자열)
Object System.Object

변수에는 변수 값과 해당 값의 데이터 형식을 설정하는 옵션이 포함됩니다. 두 속성은 호환되어야 합니다. 예를 들어 정수 데이터 형식과 함께 문자열 값을 사용하는 것은 유효하지 않습니다.

변수가 식으로 평가되도록 구성된 경우 식을 제공해야 합니다. 런타임에 식이 계산되고 변수에는 해당 계산의 결과가 설정됩니다. 예를 들어 변수가 DATEPART("month", GETDATE()) 식을 사용하는 경우 변수의 값은 현재 날짜의 월에 해당하는 수입니다. 식은 SSIS 식 문법 구문을 사용하는 유효한 식이어야 합니다. 식이 변수와 함께 사용되는 경우 식은 식 문법에서 제공하는 리터럴과 연산자 및 함수를 사용할 수 있지만 식은 패키지의 데이터 흐름에서 열을 참조할 수 없습니다. 식의 최대 길이는 4000자입니다. 자세한 내용은 Integration Services(SSIS) 식을 참조하세요.

ValueType

참고 항목

이 속성 값은 변수 창의 데이터 형식 열에 표시됩니다.

변수 값의 데이터 형식을 지정합니다.

변수를 사용하는 시나리오

변수는 Integration Services 패키지에서 다양한 방법으로 사용됩니다. 솔루션에 필요한 유연성과 관리 효율성을 구현하기 위해 패키지에 사용자 정의 변수를 추가해야 하기 전에는 패키지 개발이 진행되지 않을 수 있습니다. 시나리오에 따라 시스템 변수도 일반적으로 사용됩니다.

속성 식은 변수를 사용하여 패키지 및 패키지 개체의 속성을 설정하는 속성 식의 값을 제공합니다. 예를 들어 SELECT * FROM @varTableName 식에는 SQL 실행 태스크가 실행하는 SQL 문을 업데이트하는 varTableName 변수가 포함되어 있습니다. DATEPART("d", GETDATE()) == 1? @[User::varPackageFirst]:@[User::varPackageOther]"라는 식 은 해당 월의 첫째 날에 varPackageFirst 변수에 지정된 패키지를 실행하고 다른 날에 varPackageOther 변수에 지정된 패키지를 실행하여 패키지 실행 태스크가 실행하는 패키지를 업데이트합니다. 자세한 내용은 패키지에서 속성 식 사용을 참조하세요.

데이터 흐름 식 변수를 사용하여 파생 열 및 조건부 분할 변환에서 열을 채우기 위해 사용하는 식에 값을 제공하거나 데이터 행을 다른 변환 출력에 전송할 수 있습니다. 예를 들어 식 @varSalutation + LastNameVarSalutation 변수와 LastName 열의 값을 연결합니다. 식 Income < @HighIncomeIncome 열의 값이 HighIncome 변수의 값보다 작은 데이터 행을 출력으로 전달합니다. 자세한 내용은 파생 열 변환, 조건부 분할 변환Integration Services(SSIS)를 참조하세요.

선행 제약 조건 식은 제약 조건이 제한된 실행 파일이 실행되는지 여부를 결정하기 위해 선행 제약 조건에 사용할 값을 제공합니다. 식은 실행 결과(성공, 실패, 완료)와 함께 사용하거나 실행 결과 대신 사용할 수 있습니다. 예를 들어 @varMax > @varMin식이 true로 계산될 경우 실행 개체가 실행됩니다. 자세한 내용은 선행 제약 조건에 식 추가를 참조하세요.

매개 변수 및 반환 코드는 입력 매개 변수에 값을 제공하거나 출력 매개 변수 및 반환 코드의 값을 저장합니다. 변수를 매개 변수에 매핑하고 값을 반환하여 이 작업을 수행합니다. 예를 들어 변수 varProductId를 23으로 설정하고 SQL 문 SELECT * from Production.Product WHERE ProductID = ?을 실행하면 쿼리는 23의 ProductID 제품을 검색합니다. 자세한 내용은 SQL 실행 태스크매개 변수와 SQL 실행 태스크의 반환 코드를 참조하세요.

For 루프 식은 For 루프의 초기화, 평가 및 할당 식에 사용할 값을 제공합니다. 예를 들어 varCount 변수가 2, varMaxCount 변수가 10, 초기화 식이 @varCount, 계산 식이 @varCount < @varMaxCount, 대입 식이 @varCount =@varCount +1인 경우 루프는 8번 반복됩니다. 자세한 내용은 For 루프 컨테이너를 참조하세요.

부모 패키지 변수 구성은 부모 패키지에서 자식 패키지로 값을 전달합니다. 자식 패키지는 부모 패키지 변수 구성을 사용하여 부모 패키지의 변수에 액세스할 수 있습니다. 예를 들어 자식 패키지가 부모 패키지와 동일한 날짜를 사용해야 하는 경우 자식 패키지는 부모 패키지의 GETDATE 함수에 의해 설정된 변수를 지정하는 부모 패키지 변수 구성을 정의할 수 있습니다. 자세한 내용은 패키지 실행 태스크패키지 구성을 참조하세요.

스크립트 태스크 및 스크립트 구성 요소 스크립트 태스크 또는 스크립트 구성 요소에 대한 읽기 전용 및 읽기/쓰기 변수 목록을 제공하고 스크립트 내에서 읽기/쓰기 변수를 업데이트한 다음 스크립트 내부 또는 외부에서 업데이트된 값을 사용합니다. 예를 들어 코드 numberOfCars = CType(Dts.Variables("NumberOfCars").Value, Integer)에서 스크립트 변수 numberOfCars는 변수의 값 NumberOfCars으로 업데이트됩니다. 자세한 내용은 스크립트 태스크에서 변수 사용을 참조하세요.

변수 추가

  1. SSDT(SQL Server Data Tools)에서 처리하려는 Integration Services 패키지를 엽니다.

  2. 솔루션 탐색기에서 패키지를 두 번 클릭하여 엽니다.

  3. SSIS 디자이너에서 변수의 범위를 정의하려면 다음 중 하나를 수행합니다.

    • 패키지 범위를 설정하려면 제어 흐름 탭의 디자인 화면에서 아무 곳이나 클릭합니다.

    • 이벤트 처리기의 범위를 설정하려면 이벤트 처리기 탭의 디자인 화면에서 실행 파일 및 이벤트 처리기를 선택합니다.

    • 태스크 또는 컨테이너의 범위를 설정하려면 제어 흐름 탭 또는 이벤트 처리기 탭의 디자인 화면에서 태스크 또는 컨테이너를 클릭합니다.

  4. SSIS 메뉴에서 변수를 클릭합니다. 필요한 경우 View.Variables 명령을 옵션 대화 상자의 키보드 페이지에서 선택한 키 조합에 매핑하여 변수 창을 표시할 수도 있습니다.

  5. 변수 창에서 변수 추가 아이콘을 클릭합니다. 새 변수가 목록에 추가됩니다.

  6. 필요에 따라 표 옵션 아이콘을 클릭하고 가변 눈금 옵션 대화 상자에 표시할 추가 열을 선택한 다음 확인을 클릭합니다.

  7. 필요에 따라 변수 속성을 설정합니다. 자세한 내용은 사용자 정의 변수의 속성 설정을 참조하세요.

  8. 업데이트된 패키지를 저장하려면 파일 메뉴에서 선택한 항목 저장을 클릭합니다.

변수 추가 대화 상자

변수 추가 대화 상자를 사용하여 새 변수의 속성을 지정합니다.

옵션

컨테이너
목록에서 컨테이너를 선택합니다. 컨테이너는 변수의 범위를 정의합니다. 컨테이너는 패키지 또는 패키지의 실행 파일일 수 있습니다.

이름
변수 이름을 입력합니다.

네임스페이스
변수의 네임스페이스를 지정합니다. 기본적으로 사용자 정의 변수는 사용자 네임스페이스에 있습니다.

값 유형
데이터 형식을 선택합니다.


값을 입력합니다. 값은 값 형식 옵션에 지정된 데이터 형식과 호환되어야 합니다.

읽기 전용
변수를 읽기 전용으로 설정하려면 선택합니다.

변수 삭제

  1. SSDT(SQL Server Data Tools)에서 원하는 패키지가 들어 있는 Integration Services 프로젝트를 엽니다.

  2. 솔루션 탐색기에서 패키지를 마우스 오른쪽 단추로 클릭하여 엽니다.

  3. SSIS 메뉴에서 변수를 클릭합니다. 필요한 경우 View.Variables 명령을 옵션 대화 상자의 키보드 페이지에서 선택한 키 조합에 매핑하여 변수 창을 표시할 수도 있습니다.

  4. 삭제할 변수를 선택한 다음 변수 삭제를 클릭합니다.

    변수 창에 변수가 표시되지 않는 경우 표 옵션을 클릭한 다음, 모든 범위의 변수 표시를 선택합니다.

  5. 변수 삭제 확인 대화 상자가 열리면 를 클릭하여 확인합니다.

  6. 업데이트된 패키지를 저장하려면 파일 메뉴에서 선택한 항목 저장을 클릭합니다.

변수의 범위 변경

  1. SSDT(SQL Server Data Tools)에서 원하는 패키지가 들어 있는 Integration Services 프로젝트를 엽니다.

  2. 솔루션 탐색기에서 패키지를 마우스 오른쪽 단추로 클릭하여 엽니다.

  3. SSIS 메뉴에서 변수를 클릭합니다. 필요한 경우 View.Variables 명령을 옵션 대화 상자의 키보드 페이지에서 선택한 키 조합에 매핑하여 변수 창을 표시할 수도 있습니다.

  4. 변수를 선택한 다음 변수 이동을 클릭합니다.

    변수 창에 변수가 표시되지 않는 경우 표 옵션을 클릭한 다음, 모든 범위의 변수 표시를 선택합니다.

  5. 새 범위 선택 대화 상자에서 패키지 또는 패키지의 컨테이너, 작업 또는 이벤트 처리기를 선택하여 변수 범위를 변경합니다.

  6. 업데이트된 패키지를 저장하려면 파일 메뉴에서 선택한 항목 저장을 클릭합니다.

사용자 정의 변수의 속성 설정

Integration Services에서 사용자 정의 변수의 속성을 설정하려면 다음 기능 중 하나를 사용할 수 있습니다.

  • 변수 창.

  • 속성 창. 속성 창에는 설명, EvaluateAsExpression, Expression, ReadOnly, ValueType, IncludeInDebugDump 등 변수 창에서 사용할 수 없는 변수를 구성하기 위한 속성이 나열됩니다.

참고 항목

또한 Integration Services는 RaiseChangedEvent 속성을 제외하고 속성을 업데이트할 수 없는 시스템 변수 집합을 제공합니다.

변수에 식 설정

속성 창을 사용하여 사용자 정의 변수의 식을 설정하는 경우 다음을 참조하세요.

  • 변수의 값은 Value 또는 Expression 속성으로 설정할 수 있습니다. 기본적으로 EvaluateAsExpression 속성은 False로 설정되고 변수 값은 Value 속성에 의해 설정됩니다. 식을 사용하여 값을 설정하려면 먼저 EvaluateAsExpression을 True로 설정한 다음 Expression 속성에 식을 제공해야 합니다. Value 속성은 식의 평가 결과로 자동으로 설정됩니다.

  • ValueType 속성에는 Value 속성에 있는 값의 데이터 형식이 포함됩니다. 값이 식에 의해 설정되면 ValueType은 식의 평가 결과와 호환되는 데이터 형식으로 자동으로 업데이트됩니다. 예를 들어 Value에 0이 포함되고 ValueType 속성에 Int32가 포함된 경우 식을 GETDATE()로 설정하면 Value에 현재 날짜와 시간이 포함되고 ValueType이 DateTime으로 설정됩니다.

  • 변수에 대한 속성 창에서 식 작성기 대화 상자에 액세스할 수 있습니다. 이 도구를 사용하여 식을 빌드, 확인 및 평가할 수 있습니다. 자세한 내용은 식 작성기Integration Services(SSIS) 식을 참조하세요.

변수 창을 사용하여 사용자 정의 변수의 식을 설정하는 경우 다음을 참조하세요.

  • 식을 사용하여 변수 값을 설정하려면 먼저 변수 데이터 형식이 식의 평가 결과와 호환되는지 확인한 다음 변수 창의 열에 식을 제공합니다. 속성 창의 EvaluateAsExpression 속성은 자동으로 True로 설정됩니다.

  • 변수에 식을 할당하면 변수 옆에 특수 아이콘 표식이 표시됩니다. 식이 설정되어 있는 태스크와 연결 관리자 옆에도 특수 아이콘 표식이 표시됩니다.

  • 변수에 대한 변수 창에서 식 작성기 대화 상자에 액세스할 수 있습니다. 이 도구를 사용하여 식을 빌드, 확인 및 평가할 수 있습니다. 자세한 내용은 식 작성기Integration Services(SSIS) 식을 참조하세요.

변수속성 창에서 변수에 식을 할당하고 EvaluateAsExpressionTrue로 설정된 경우 변수 데이터 형식을 변경할 수 없습니다.

네임스페이스 및 이름 속성 설정

NameNamespace 속성 값은 Unicode Standard 2.0에 정의된 대로 영문자 또는 밑줄(_)로 시작해야 합니다. 후속 문자는 유니코드 표준 2.0에 정의된 문자 또는 숫자이거나 밑줄(_)일 수 있습니다.

변수 창에서 변수 속성 설정

  1. SSDT(SQL Server Data Tools)에서 원하는 패키지가 들어 있는 Integration Services 프로젝트를 엽니다.

  2. 솔루션 탐색기에서 패키지를 마우스 오른쪽 단추로 클릭하여 엽니다.

  3. SSIS 메뉴에서 변수를 클릭합니다.

    필요한 경우 View.Variables 명령을 옵션 대화 상자의 키보드 페이지에서 선택한 키 조합에 매핑하여 변수 창을 표시할 수도 있습니다.

  4. 필요에 따라 변수 창에서 표 옵션을 클릭하고 변수 창에 표시할 열을 선택한 다음 변수 목록에 적용할 필터를 선택합니다.

  5. 목록에서 변수를 선택한 다음 이름, 데이터 형식, , 네임스페이스, 변경 이벤트 발생, 설명 열의 값을 업데이트합니다.

  6. 목록에서 변수를 선택하고 변수 이동 을 클릭하여 범위를 변경합니다.

  7. 업데이트된 패키지를 저장하려면 파일 메뉴에서 선택한 항목 저장을 클릭합니다.

속성 창에서 변수 속성 설정

  1. SSDT(SQL Server Data Tools)에서 원하는 패키지가 들어 있는 Integration Services 프로젝트를 엽니다.

  2. 솔루션 탐색기에서 패키지를 마우스 오른쪽 단추로 클릭하여 엽니다.

  3. 보기 메뉴에서 속성 창을 클릭합니다.

  4. SSIS 디자이너에서 패키지 탐색기 탭을 클릭하고 패키지 노드를 확장합니다.

  5. 패키지 범위를 사용하여 변수를 수정하려면 변수 노드를 확장합니다. 그렇지 않으면 수정할 변수가 포함된 변수 노드를 찾을 때까지 이벤트 처리기 또는 실행 파일 노드를 확장합니다.

  6. 속성을 수정할 변수를 클릭합니다.

  7. 속성 창에서 읽기/쓰기 변수 속성을 업데이트합니다. 일부 속성은 사용자 정의 변수에 대해 읽기/읽기 전용입니다.

    속성에 대한 자세한 내용은 Integration Services(SSIS) 변수를 참조하세요.

  8. 업데이트된 패키지를 저장하려면 파일 메뉴에서 선택한 항목 저장을 클릭합니다.

구성을 사용하여 변수를 동적으로 업데이트

변수를 동적으로 업데이트하려면 변수에 대한 구성을 만들고 패키지를 사용하여 구성을 배포한 다음 패키지를 배포할 때 구성 파일의 변수 값을 업데이트할 수 있습니다. 패키지는 런타임에 업데이트된 변수 값을 사용합니다. 자세한 내용은 패키지 구성 만들기를 참조하세요.

자식 패키지에서 변수 및 매개 변수 값 사용

쿼리 매개 변수를 데이터 흐름 구성 요소의 변수에 매핑