패턴 값 인수
SQLTables의 TableName 인수와 같은 카탈로그 함수의 일부 인수는 검색 패턴을 허용합니다. 이러한 인수는 SQL_ATTR_METADATA_ID 문 특성이 SQL_FALSE;로 설정된 경우 검색 패턴을 허용합니다. 이 특성이 SQL_TRUE 설정된 경우 검색 패턴을 허용하지 않는 식별자 인수입니다.
검색 패턴 문자는 다음과 같습니다.
단일 문자를 나타내는 밑줄(_)입니다.
0개 이상의 문자 시퀀스를 나타내는 백분율 기호(%)입니다.
드라이버별 이스케이프 문자이며 밑줄, 백분율 기호 및 이스케이프 문자를 리터럴로 포함하는 데 사용됩니다. 이스케이프 문자가 특수 문자가 아닌 문자 앞에 오는 경우 이스케이프 문자는 특별한 의미가 없습니다. 이스케이프 문자가 특수 문자 앞에 있으면 특수 문자를 이스케이프합니다. 예를 들어 "\a"는 "\" 및 "a"라는 두 문자로 처리되지만 "\%"는 특수한 단일 문자가 아닌 "%"로 처리됩니다.
이스케이프 문자는 SQLGetInfo의 SQL_SEARCH_PATTERN_ESCAPE 옵션을 사용하여 검색됩니다. 검색 패턴을 허용하는 인수에서 밑줄, 백분율 기호 또는 이스케이프 문자 앞에 해당 문자를 리터럴로 포함해야 합니다. 예제는 다음 표에 나와 있습니다.
검색 패턴 | 설명 |
---|---|
%A% | 문자 A를 포함하는 모든 식별자 |
Abc_ | ABC로 시작하는 네 개의 문자 식별자 모두 |
Abc\_ | 식별자는 이스케이프 문자가 백슬래시(\)라고 가정하여 ABC_. |
\\% | 이스케이프 문자가 백슬래시라고 가정하고 백슬래시(\)로 시작하는 모든 식별자 |
검색 패턴을 허용하는 인수에서 검색 패턴 문자를 이스케이프하려면 특별히 주의해야 합니다. 이는 식별자에서 일반적으로 사용되는 밑줄 문자에 특히 해당합니다. 애플리케이션의 일반적인 실수는 한 카탈로그 함수에서 값을 검색하고 해당 값을 다른 카탈로그 함수의 검색 패턴 인수에 전달하는 것입니다. 예를 들어 애플리케이션이 SQLTable에 대한 결과 집합에서 MY_TABLE 테이블 이름을 검색하고 이를 SQLColumns에 전달하여 MY_TABLE 열 목록을 검색한다고 가정합니다. 애플리케이션은 MY_TABLE 열을 가져오는 대신 MY_TABLE, MY1TABLE, MY2TABLE 등과 같은 검색 패턴 MY_TABLE 일치하는 모든 테이블의 열을 가져옵니다.
참고 항목
ODBC 2.x 드라이버는 SQLTables의 CatalogName 인수에서 검색 패턴을 지원하지 않습니다. ODBC 3*.x* 드라이버는 SQL_ATTR_ ODBC_VERSION 환경 특성이 SQL_OV_ODBC3;로 설정된 경우 이 인수에서 검색 패턴을 허용합니다. SQL_OV_ODBC2 설정되면 이 인수에서 검색 패턴을 허용하지 않습니다.
검색 패턴 인수에 null 포인터를 전달해도 해당 인수에 대한 검색이 제한되지 않습니다. 즉, null 포인터와 검색 패턴 %(모든 문자)가 동일합니다. 그러나 길이가 0인 문자열에 대한 유효한 포인터인 길이가 0인 검색 패턴은 빈 문자열("")만 일치합니다.