식별자(SSIS)Identifiers (SSIS)

식에서 식별자는 연산에 사용할 수 있는 열과 변수입니다.In expressions, identifiers are columns and variables that are available to the operation. 식은 일반 식별자와 정규화된 식별자를 사용할 수 있습니다.Expressions can use regular and qualified identifiers.

일반 식별자Regular Identifiers

일반 식별자는 추가 한정자가 필요 없는 식별자입니다.A regular identifier is an identifier that needs no additional qualifiers. 예를 들어 AdventureWorks데이터베이스의 Contacts 테이블에 있는 MiddleName 열은 일반 식별자입니다.For example, MiddleName, a column in the Contacts table of the AdventureWorks database, is a regular identifier.

일반 식별자 이름은 다음 규칙을 따라야 합니다.The naming of regular identifiers must follow these rules:

  • 이름의 첫 글자는 Unicode Standard 2.0에서 정의한 문자이거나 밑줄()이어야 합니다.The first character of the name must be a letter as defined by the Unicode Standard 2.0, or an underscore ().

  • 후속 글자는 Unicode Standard 2.0에서 정의한 문자나 숫자이거나 밑줄(), @, $ 및 # 문자일 수 있습니다.Subsequent characters can be letters or numbers as defined in the Unicode Standard 2.0, the underscore (), @, $, and # characters.

중요

공백과 목록에 없는 특수 문자는 일반 식별자에 유효하지 않습니다.Embedded spaces and special characters, other than the ones listed, are not valid in regular identifiers. 공백과 특수 문자를 사용하려면 일반 식별자 대신 정규화된 식별자를 사용해야 합니다.In order to use spaces and special characters, you must use a qualified identifier instead of a regular identifier.

정규화된 식별자Qualified Identifiers

정규화된 식별자는 대괄호로 구분된 식별자입니다.A qualified identifier is an identifier that is delimited by brackets. 식별자 이름에 공백이 포함되어 있거나 식별자 이름이 문자나 밑줄로 시작하지 않기 때문에 식별자에 구분 기호가 필요할 수 있습니다.An identifier may require a delimiter because the name of the identifier includes spaces, or because the identifier name does not begin with either a letter or the underscore character. 예를 들어 열 이름이 Middle Name 인 경우 대괄호로 묶어서 식에 [Middle Name] 형식으로 써야 합니다.For example, the column name Middle Name must be qualified by brackets and written as [Middle Name] in an expression.

식별자 이름에 공백이 있거나 올바른 일반 식별자 이름이 아니면 식별자를 정규화해야 합니다.If the name of the identifier includes spaces, or if the name is not a valid regular identifier name, the identifier must be qualified. 식 계산기는 여는 대괄호와 닫는 대괄호([])를 사용하여 식별자를 정규화합니다.The expression evaluator uses the opening and closing ([]) brackets to qualify identifiers. 대괄호는 문자열의 시작 위치와 끝 위치에 있습니다.The brackets are put in the first and the last position of the string. 예를 들어 식별자 5$>는 [5$>]가 됩니다.For example, the identifier 5$> becomes [5$>]. 대괄호는 열 이름, 변수 이름 및 함수 이름에 사용할 수 있습니다.Brackets can be used with column names, variable names, and function names.

SSISSSIS 디자이너 대화 상자를 사용하여 식을 작성하면 자동으로 일반 식별자가 대괄호로 묶입니다.If you build expressions using the SSISSSIS Designer dialog boxes, regular identifiers are automatically enclosed in brackets. 그러나 이름에 잘못된 문자가 포함된 경우에만 대괄호가 필요합니다.However, brackets are required only if the name include invalid characters. 예를 들어 이름이 MiddleName 인 열은 대괄호가 없어도 유효합니다.For example, the column named MiddleName is valid without brackets.

대괄호가 포함된 열 이름은 식에서 참조할 수 없습니다.You cannot reference column names that include brackets in expressions. 예를 들어 열 이름 Column[1] 은 식에 사용할 수 없습니다.For example, the column name Column[1] cannot be used in an expression. 식에 이 열을 사용하려면 대괄호가 없는 이름으로 바꾸어야 합니다.To use the column in an expression it must be renamed to a name without brackets.

계보 식별자Lineage Identifiers

식은 계보 식별자를 사용하여 열을 참조할 수 있습니다.Expressions can use lineage identifiers to refer to columns. 계보 식별자는 처음 패키지를 만들 때 자동으로 할당됩니다.The lineage identifiers are assigned automatically when you first create the package. 디자이너의 고급 편집기 대화 상자에 있는 열 속성 SSISSSIS 탭에서 열의 계보 식별자를 볼 수 있습니다.You can view the lineage identifier for a column on the Column Properties tab of the Advanced Editor dialog box in the SSISSSIS Designer.

계보 식별자를 사용하여 열을 참조하는 경우 해당 식별자에 파운드(#) 문자 접두사를 포함해야 합니다.If you refer to a column using its lineage identifier, the identifier must include the pound (#) character prefix. 예를 들어 계보 식별자가 147인 열은 #147로 참조해야 합니다.For example, a column with the lineage identifier 147 must be referenced as #147.

식이 성공적으로 구문 분석되면 식 계산기는 계보 식별자를 대화 상자에 표시된 열 이름으로 바꿉니다.If an expression parses successfully, the expression evaluator replaces the lineage identifiers with column names in the dialog box.

고유 열 이름Unique Column Names

패키지에 사용된 여러 개의 구성 요소가 동일한 이름을 가진 열을 표시할 수 있습니다.Multiple components used in a package can expose columns with the same name. 이러한 열을 식에 사용하는 경우 열을 명확히 구분해야만 식이 성공적으로 구문 분석될 수 있습니다.If these columns are used in expressions, they must be disambiguated before the expressions can be parsed successfully. 식 계산기는 열 원본을 식별하기 위한 점 표기법을 지원합니다.The expression evaluator supports the dotted notation for identifying the source of the column. 예를 들어 Age 라는 이름의 두 개 열은 각각 FlatFileSource.AgeOLEDBSource.Age가 되어 해당 원본이 FlatFileSource 또는 OLEDBSource임을 나타냅니다.For example, two columns named Age become FlatFileSource.Age and OLEDBSource.Age, which indicates that their sources are FlatFileSource or OLEDBSource. 구문 분석기는 정규화된 이름을 단일 열 이름으로 처리합니다.The parser treats the fully qualified name as a single column name.

원본 구성 요소 이름과 열 이름은 별도로 정규화됩니다.Source component names and column names are qualified separately. 다음 예에서는 점 표기법에서 대괄호의 올바른 사용을 보여 줍니다.The following examples show valid use of brackets in a dotted notation:

  • 원본 구성 요소 이름에 공백이 포함되어 있습니다.The source component name includes spaces.

    [MySo urce].Age  
    
  • 열 이름의 첫 문자가 유효하지 않습니다.The first character in the column name is not valid.

    MySource.[#Age]  
    
  • 원본 구성 요소와 열 이름에 유효하지 않은 문자가 포함되어 있습니다.The source component and the column names contain invalid characters.

    [MySource?].[#Age]  
    

중요

점 표기법에서 두 요소가 한 쌍의 대괄호로 묶여 있으면 식 계산기는 이 쌍을 원본-열 조합이 아닌 단일 식별자로 해석합니다.If both elements in dotted notation are enclosed in one pair of brackets, the expression evaluator interprets the pair as a single identifier, not a source-column combination.

식의 변수Variables in Expressions

식에서 참조된 변수는 @ 접두사를 포함해야 합니다.Variables, when referenced in expressions, must include the @ prefix. 예를 들어는 카운터 변수는 사용 하 여 참조 @Counter합니다.For example, the Counter variable is referenced by using @Counter. @ 문자는 변수 이름의 일부가 아니라 식 계산기에 해당 변수를 식별하는 역할만 합니다.The @ character is not part of the variable name; it only identifies the variable to the expression evaluator. SSISSSIS 디자이너에서 제공하는 대화 상자를 사용하여 식을 작성하면 변수 이름에 @ 문자가 자동으로 추가됩니다.If you build expressions by using the dialog boxes that SSISSSIS Designer provides, the @ character is automatically added to the variable name. @ 문자와 변수 이름 사이에는 공백을 넣을 수 없습니다.It is not valid to include spaces between the @ character and the variable name.

변수 이름은 다른 일반 식별자의 이름과 동일한 규칙을 따라야 합니다.Variable names follow the same rules as those for other regular identifiers:

  • 이름의 첫 글자는 Unicode Standard 2.0에서 정의한 문자이거나 밑줄()이어야 합니다.The first character of the name must be a letter as defined by the Unicode Standard 2.0, or an underscore ().

  • 후속 글자는 Unicode Standard 2.0에서 정의한 문자나 숫자이거나 밑줄(), @, $ 및 # 문자일 수 있습니다.Subsequent characters can be letters or numbers as defined in the Unicode Standard 2.0, the underscore (), @, $, and # characters.

    목록에 없는 문자가 변수 이름에 포함되어 있으면 해당 변수를 대괄호로 묶어야 합니다.If a variable name contains characters other than those listed, the variable must be enclosed in brackets. 예를 들어 공백이 포함된 변수 이름은 대괄호로 묶어야 합니다.For example, variable names with spaces must be enclosed in brackets. 여는 대괄호는 @ 문자 뒤에 옵니다.The opening bracket follows the @ character. 예를 들어 My Name 변수는 @[My Name]으로 참조됩니다.For example, the My Name variable is referenced as @[My Name]. 변수 이름과 대괄호 사이에는 공백을 넣을 수 없습니다.It is not valid to include spaces between the variable name and the brackets.

참고

사용자 정의 변수 및 시스템 변수의 이름은 대/소문자를 구분합니다.The names of user-defined and system variables are case-sensitive.

고유 변수 이름Unique Variable Names

Integration ServicesIntegration Services 는 사용자 지정 변수를 지원하며 시스템 변수 집합을 제공합니다. supports custom variables and provides a set of system variables. 기본적으로 사용자 지정 변수는 User 네임스페이스에 속하고 시스템 변수는 System 네임스페이스에 속합니다.By default, custom variables belong to the User namespace, and system variables belong to the System namespace. 사용자 지정 변수용 네임스페이스를 추가로 만들고 응용 프로그램의 요구에 맞게 기존 네임스페이스 이름을 업데이트할 수 있습니다.You can create additional namespaces for custom variables and update the namespace names to suit the needs of your application. 식 작성기는 모든 네임스페이스의 범위 내 변수 목록을 표시합니다.The expression builder lists in-scope variables in all namespaces.

모든 변수는 범위를 가지고 있고 하나의 네임스페이스에 속합니다.All variables have scope and belong to a namespace. 변수 범위는 패키지 범위이거나 패키지의 컨테이너 또는 태스크 범위입니다.A variable has package scope or the scope of a container or task in the package. SSISSSIS 디자이너의 식 작성기는 범위 내 변수 목록만 표시합니다.The expression builder in SSISSSIS Designer lists only the in-scope variables. 자세한 내용은 Integration Services(SSIS) 변수패키지에서 변수 사용을 참조하세요.For more information, see Integration Services (SSIS) Variables and Use Variables in Packages.

식에 사용된 변수의 이름이 고유해야 식 계산기에서 식을 올바로 계산할 수 있습니다.Variables used in expressions must have unique names for the expression evaluator to evaluate the expression correctly. 패키지에서 이름이 같은 변수를 여러 개 사용할 경우 해당 네임스페이스가 서로 달라야 합니다.If a package uses multiple variables with the same name, their namespaces must be different. Integration ServicesIntegration Services 두 개의 콜론으로 구성된(::) 네임스페이스 확인 연산자를 사용하여 네임스페이스로 변수를 정규화합니다. provides a namespace resolution operator, consisting of two colons (::), for qualifying a variable with its namespace. 예를 들어 다음 식에서는 Count라는 이름을 가진 변수 두 개를 사용합니다. 하나는 User 네임스페이스에 속하고 다른 하나는 MyNamespace 네임스페이스에 속합니다.For example, the following expression uses two variables named Count; one belongs to the User namespace and one to the MyNamespace namespace.

@[User::Count] > @[MyNamespace::Count]  

중요

식 계산기에서 변수를 인식할 수 있도록 네임스페이스와 정규화된 변수 이름 조합을 대괄호로 묶어야 합니다.You must enclose the combination of namespace and qualified variable name in brackets for the expression evaluator to recognize the variable.

User 네임스페이스의 Count 값이 10이고 MyNamespaceCount 값이 2이면 식 계산기에서 두 개의 다른 변수를 인식하므로 해당 식은 true 가 됩니다.If the value of Count in the User namespace is 10 and the value of Count in MyNamespace is 2, the expression evaluates to true because the expression evaluator recognizes two different variables.

고유한 변수 이름을 사용하지 않아도 오류가 발생하지는 않습니다.If variable names are not unique, no error occurs. 대신 식 계산기가 해당 변수의 한 개 인스턴스만 사용하여 식을 계산하고 잘못된 결과를 반환합니다.Instead, the expression evaluator uses only one instance of the variable to evaluate the expression and returns an incorrect result. 예를 들어 다음 식은 두 개의 별도 Count 변수에 대한 값(10과 2)을 비교하기 위한 것이지만 식 계산기에서 Count 변수의 같은 인스턴스를 두 번 사용하므로 해당 식은 false 가 됩니다.For example, the following expression was intended to compare the values (10 and 2) for two separate Count variables but the expression evaluates to false because the expression evaluator uses the same instance of the Count variable two times.

@Count > @Count  

pragmaticworks.com의 기술 문서 - SSIS 식 치트 시트Technical article, SSIS Expression Cheat Sheet, on pragmaticworks.com