문자열 데이터 비교Comparing String Data

문자열 비교는 Integration ServicesIntegration Services에서 수행되는 여러 변환에서 중요한 부분이며, 변수의 식 및 속성 식 평가에도 사용됩니다.String comparisons are an important part of many of the transformations performed by Integration ServicesIntegration Services, and string comparisons are also used in the evaluation of expressions in variables and property expressions. 예를 들어 정렬 변환에서는 데이터 집합의 값을 비교하여 데이터를 오름차순 또는 내림차순으로 정렬합니다.For example, the Sort transformation compares values in a dataset to sort data in ascending or descending order.

문자열 비교를 위한 변환 구성Configuring Transformations for String Comparisons

정렬, 집계, 유사 항목 그룹화, 유사 항목 조회 변환을 사용자 지정하여 열 수준에서 문자열이 비교되는 방식을 변경할 수 있습니다.The Sort, Aggregate, Fuzzy Grouping, and Fuzzy Lookup transformations can be customized to change the way strings are compared at the column level. 예를 들어 비교 시 대/소문자를 무시하여 대문자와 소문자가 모두 동일한 문자로 취급되도록 지정할 수 있습니다.For example, you can specify that a comparison ignores case, which means that uppercase and lowercase characters are treated as the same character.

다음 변환에서는 문자열 비교를 포함할 수 있는 식이 사용됩니다.The following transformations use expressions that can include string comparisons.

  • 조건부 분할 변환에서는 식에서 문자열 비교를 사용하여 데이터 행을 전송할 출력을 결정할 수 있습니다.The Conditional Split transformation can use string comparisons in expressions to determine which output to send the data row to. 자세한 내용은 Conditional Split Transformation을 참조하세요.For more information, see Conditional Split Transformation.

  • 파생 열 변환에서는 식에서 문자열 비교를 사용하여 새 열 값을 생성할 수 있습니다.The Derived Column transformation can use string comparisons in expressions to generate new column values. 자세한 내용은 Derived Column Transformation을 참조하세요.For more information, see Derived Column Transformation.

    또한 변수, 변수 매핑 및 선행 제약 조건에서는 문자열 비교가 포함될 수 있는 식이 사용됩니다.Variables, variable mappings, and precedence constraints also use expressions, which can include string comparisons. 식에 대한 자세한 내용은 Integration Services(SSIS) 식을 참조하세요.For more information about expressions, see Integration Services (SSIS) Expressions.

문자열 비교 시 수행되는 처리Processing during String Comparison

데이터 및 변환 구성에 따라 문자열 데이터 비교 중에 다음 처리 작업이 발생할 수 있습니다.Depending on the data and the configuration of the transformation, the following processing may occur during the comparison of string data:

  • 데이터를 유니코드로 변환합니다.Converting data to Unicode. 원본 데이터가 아직 유니코드가 아닌 경우 비교가 발생하기 전에 데이터가 자동으로 유니코드로 변환됩니다.If the source data is not already Unicode, the data is automatically converted to Unicode before the comparison occurs.

  • 로캘을 사용하여 날짜, 시간, 숫자 데이터 및 정렬 순서를 해석하기 위한 로캘 특정 규칙을 적용합니다.Using locale to apply locale-specific rules for interpreting date, time, decimal data, and sort order.

  • 열 수준에서 비교 옵션을 적용하여 비교 시 대/소문자 구분 여부를 변경합니다.Applying comparison options at the column level to change the sensitivity of comparisons.

문자열 데이터를 유니코드로 변환Converting String Data to Unicode

변환에서 수행되는 작업 및 변환 구성에 따라 문자열 데이터를 문자열의 유니코드 표현인 DT_WSTR 데이터 형식으로 변환할 수 있습니다.Depending on the operations that the transformation performs and the configuration of the transformation, string data may be converted to the DT_WSTR data type, which is a Unicode representation of string characters.

데이터 형식이 DT_STR인 문자열 데이터는 열의 코드 페이지를 사용하여 유니코드로 변환됩니다.String data that has the DT_STR data type is converted to Unicode using the code page of the column. Integration ServicesIntegration Services 에서는 열 수준의 코드 페이지가 지원되며 각 열은 다른 코드 페이지를 사용하여 변환될 수 있습니다. supports code pages at the column level, and each column can be converted by using a different code page.

대부분의 경우 Integration ServicesIntegration Services 에서는 데이터 원본의 올바른 코드 페이지를 식별할 수 있습니다.In most cases, Integration ServicesIntegration Services can identify the correct code page from the data source. 예를 들어 SQL ServerSQL Server 에서 데이터베이스 및 열 수준의 데이터 정렬을 설정할 수 있습니다.For example, in SQL ServerSQL Server you can set a collation at the database and column levels. 코드 페이지는 Windows 또는 SQL 데이터 정렬 중 하나일 수 있는 SQL ServerSQL Server 데이터 정렬로부터 파생됩니다.The code page is derived from a SQL ServerSQL Server collation, which can be either a Windows or an SQL collation.

Integration ServicesIntegration Services 에서 예기치 않은 코드 페이지가 제공되는 경우 또는 패키지에서 올바른 코드 페이지를 확인하는 데 필요한 정보가 충분하지 않은 공급자를 사용하여 데이터 원본에 액세스하는 경우에는 OLE DB 원본과 OLE DB 대상의 기본 코드 페이지를 지정할 수 있습니다.If Integration ServicesIntegration Services provides an unexpected code page, or if the package accesses a data source by using a provider that does not supply sufficient information to determine the correct code page, you can specify a default code page in the OLE DB source and the OLE DB destination. 기본 코드 페이지는 Integration ServicesIntegration Services 에서 제공되는 코드 페이지 대신 사용됩니다.The default code pages are used instead of the code pages that Integration ServicesIntegration Services provides.

파일에는 코드 페이지가 없습니다.Files do not have code pages. 대신 패키지에서 파일 데이터에 연결하기 위해 사용하는 플랫 파일과 다중 플랫 파일 연결 관리자에는 파일의 코드 페이지를 지정하기 위한 속성이 포함됩니다.Instead, the Flat File and the Multiple Flat Files connection managers that a package uses to connect to file data include a property for specifying the code page of the file. 코드 페이지는 열 수준이 아닌 파일 수준에서만 설정될 수 있습니다.The code page can be set at the file level only, not at the column level.

로캘 설정Setting Locale

Integration ServicesIntegration Services 에서는 코드 페이지를 사용하여 데이터 정렬 또는 날짜, 시간 및 숫자 데이터 해석을 위한 로캘 특정 규칙을 유추하지 않습니다. does not use the code page to infer locale-specific rules for sorting data or interpreting date, time, and decimal data. 그 대신 변환이 데이터 흐름 구성 요소, 데이터 흐름 태스크, 컨테이너 또는 패키지의 LocaleId 속성으로 설정된 로캘을 읽습니다.Instead, the transformation reads the locale that is set by the LocaleId property on the data flow component, Data Flow task, container, or package. 기본적으로 변환의 로캘은 해당 데이터 흐름 태스크로부터 상속되며, 이 작업은 패키지로부터 상속됩니다.By default, the locale of a transformation is inherited from its Data Flow task, which in turn inherits from the package. 데이터 흐름 태스크가 For 루프 컨테이너와 같은 컨테이너에 포함되는 경우 이 태스크는 컨테이너의 로캘을 상속합니다.If the Data Flow task is in a container such as the For Loop container, it inherits its locale from the container.

또한 플랫 파일 연결 관리자와 다중 플랫 파일 연결 관리자에 대한 로캘을 지정할 수 있습니다.You can also specify a locale for a Flat File connection manager and a Multiple Flat Files connection manager.

비교 옵션 설정Setting Comparison Options

로캘은 문자열 데이터 비교를 위한 기본 규칙을 제공합니다.The locale provides the basic rules for comparing string data. 예를 들어 로캘은 영문자의 각 문자에 대한 정렬 위치를 지정합니다.For example, the locale specifies the sort position of each letter in the alphabet. 하지만 이러한 규칙만으로는 일부 변환에서 수행되는 비교 시 충분하지 않을 수 있으며, Integration ServicesIntegration Services 에서는 로캘의 비교 규칙 이외에도 일련의 고급 비교 옵션이 지원됩니다.However, these rules may not be sufficient for the comparisons that some transformations perform, and Integration ServicesIntegration Services supports a set of advanced comparison options that go beyond the comparison rules of a locale. 이러한 비교 옵션은 열 수준에서 설정됩니다.These comparison options are set at the column level. 예를 들어 비교 옵션 중 하나를 사용하면 비공백 문자를 무시할 수 있습니다.For example, one of the comparison options lets you ignore nonspacing characters. 이 옵션을 설정하면 악센트와 같은 분음 부호를 무시하여 비교 시 "a"와 "á"가 동일하게 인식됩니다.The effect of this option is to ignore diacritics such as the accent, which makes "a" and "á" identical for comparison purposes.

다음 표에서는 비교 옵션과 정렬 스타일에 대해 설명합니다.The following table describes the comparison options and a sort style.

비교 옵션Comparison option DescriptionDescription
대/소문자 무시Ignore case 비교 시 대문자와 소문자를 구분할지 여부를 지정합니다.Specifies whether the comparison distinguishes between uppercase and lowercase letters. 이 옵션을 설정하면 문자열 비교 시 대/소문자가 무시됩니다.If this option is set, the string comparison ignores case. 예를 들어 "ABC"는 "abc"와 동일하게 인식됩니다.For example, "ABC" becomes the same as "abc".
가나 형식 무시Ignore kana type 비교 시 두 가지 형식의 일본어 가나 문자인 히라가나와 가타가나를 구분합니다.Specifies whether the comparison distinguishes between the two types of Japanese kana characters: hiragana and katakana. 이 옵션을 설정하면 문자열 비교 시 가나 형식이 무시됩니다.If this option is set, the string comparison ignores kana type.
문자 너비 무시Ignore character width 비교 시 싱글바이트 문자와 동일 문자의 더블바이트 문자 표현을 구분할지 여부를 지정합니다.Specifies whether the comparison distinguishes between a single-byte character and the same character when it is represented as a double-byte character. 이 옵션을 설정하면 문자열 비교 시 동일 문자에 대한 싱글바이트 표현과 더블바이트 표현이 동일하게 인식됩니다.If this option is set, the string comparison treats single-byte and double-byte representations of the same character as identical.
비공백 문자 무시Ignore nonspacing characters 비교 시 공백 문자와 분음 기호를 구분할지 여부를 지정합니다.Specifies whether the comparison distinguishes between spacing characters and diacritics. 이 옵션을 설정하면 비교 시 분음 기호가 무시됩니다.If this option is set, the comparison ignores diacritics. 예를 들어 "å"와 "a"는 동일합니다.For example, "å" is equal to "a".
기호 무시Ignore symbols 비교 시 글자 문자와 공백 문자, 문장 부호, 통화 기호 및 수학 기호와 같은 기호를 구분할지 여부를 지정합니다.Specifies whether the comparison distinguishes between letter characters and symbols such as white-space characters, punctuation, currency symbols, and mathematical symbols. 이 옵션을 설정하면 문자열 비교 시 기호가 무시됩니다.If this option is set, the string comparison ignores symbols. 예를 들어 " New York"은 "New York"과 동일하며 "ABC"는 "ABC"와 동일합니다.For example, " New York" becomes the same as "New York" and "ABC" is the same as "ABC"'.
문장 부호를 기호로 정렬Sort punctuation as symbols 비교 시 영숫자 문자 앞에서 하이픈과 아포스트로피를 제외한 모든 문장 부호를 정렬할지 여부를 지정합니다.Specifies whether the comparison sorts all punctuation symbols, except the hyphen and apostrophe, before the alphanumeric characters. 예를 들어 이 옵션을 설정하면 ".ABC"가 "ABC" 앞에 정렬됩니다.For example, if this option is set, ".ABC" sorts before "ABC".

정렬, 집계, 유사 항목 그룹화 및 유사 항목 조회 변환에는 데이터 비교를 위한 이러한 옵션이 포함됩니다.The Sort, Aggregate, Fuzzy Grouping and Fuzzy Lookup transformations include these options for comparing data.

FullySensitive 비교 플래그는 유사 항목 그룹화 및 유사 항목 조회 변환을 위해 고급 편집기 대화 상자에 표시됩니다.The FullySensitive comparison flag displays in the Advanced Editor dialog box for the Fuzzy Grouping and Fuzzy Lookup transformations. FullySensitive 비교 플래그를 선택하면 모든 비교 옵션이 적용됩니다.Selecting the FullySensitive comparison flag means that all the comparison options apply.

관련 항목:See Also

Integration Services 데이터 형식 Integration Services Data Types
빠른 구문 분석 Fast Parse
표준 구문 분석Standard Parse