공용 스키마 컬렉션은 호스트 파일용 관리되는 공급자에 의해 구현되는 스키마 컬렉션입니다. 관리되는 공급자를 쿼리하여 인수를 사용하지 않거나 “MetaDataCollections”라는 스키마 컬렉션 이름으로 GetSchema
메서드를 호출하여 지원되는 스키마 컬렉션 목록을 확인할 수 있습니다. 그러면 지원되는 스키마 컬렉션의 목록, 각자 지원하는 제약 조건 수, 사용하는 식별자 부분 수가 포함된 DataTable
개체가 반환됩니다.
다음 표에서는 호스트 파일 시스템에 대한 공통 스키마 컬렉션에 관해 설명합니다.
열
열 이름 | 데이터 형식 | Description |
---|---|---|
table_catalog | String | 테이블의 카탈로그입니다. |
table_schema | String | 해당 테이블을 포함하는 스키마입니다. |
table_name | String | 테이블 이름입니다. |
column_name | String | 열 이름입니다. |
ordinal_position | Int16 | 열 ID입니다. |
column_default | String | 열 기본값입니다. |
is_nullable | String | 열의 NULL 허용 여부입니다. 이 열에서 NULL을 허용하는 경우 YES를 반환합니다. 그렇지 않으면 No가 반환됩니다. |
data_type | String | 시스템 제공 데이터 형식입니다. |
character_maximum_length | Int32 - Sql8, Int16 - Sql7 | 이진 데이터, 문자 데이터 또는 텍스트와 이미지 데이터의 최대 길이(문자)입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다. |
character_octet_length | Int32 - SQL8, Int16 - Sql7 | 이진 데이터, 문자 데이터 또는 텍스트와 이미지 데이터의 최대 길이(바이트)입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다. |
numeric_precision | 부호 없는 바이트 | 근사 숫자 데이터, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터의 전체 자릿수입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다. |
numeric_precision_radix | Int16 | 근사 숫자 데이터, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터의 전체 자릿수 기수입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다. |
numeric_scale | Int32 | 근사 숫자 데이터, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터의 소수 자릿수입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다. |
datetime_precision | Int16 | datetime 및 SQL-92 interval 데이터 형식에 대한 하위 형식 코드입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다. |
character_set_catalog | String | 열이 문자 데이터 또는 텍스트 데이터 형식이면 문자 집합이 있는 데이터베이스를 나타내는 master가 반환됩니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다. |
character_set_schema | String | 항상 NULL을 반환합니다. |
character_set_name | String | 이 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 문자 집합에 대해 고유 이름을 반환합니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다. |
collation_catalog | String | 열이 문자 데이터 또는 텍스트 데이터 형식이면 정렬이 정의된 데이터베이스를 나타내는 master를 반환합니다. 그렇지 않은 경우 이 열은 NULL입니다. |
DataSourceInformation
Name | 형식 | 설명 |
---|---|---|
CompositeIdentifierSeparatorPattern | 문자열 | 복합 식별자의 복합 구분 기호와 일치하는 정규식입니다. 예: “\.” (SQL Server용) 또는 “@|\.” (Oracle의 경우)입니다. |
복합 식별자는 일반적으로 데이터베이스 개체 이름에 사용됩니다(예: pubs.dbo.authors 또는 pubs@dbo.authors). | ||
SQL Server의 경우 정규식 “\.”를 사용합니다. OracleClient의 경우 “@|\.”를 사용합니다. | ||
OLE DB의 경우 DBLITERAL_CATALOG_SEPARATOR 또는 DBLITERAL_SCHEMA_SEPARATOR를 사용합니다. | ||
DataSourceProductName | 문자열 | "Oracle" 또는 "SQLServer"와 같은 공급자에서 액세스하는 제품의 이름입니다. |
DataSourceProductVersion | 문자열 | Microsoft 형식이 아닌 데이터 원본 네이티브 형식으로 공급자가 액세스하는 제품의 버전입니다. |
DataSourceProductVersion과 DataSourceProductVersionNormalized가 동일한 값인 경우도 있습니다. OLE DB를 사용하면 기본 API에서 동일한 함수 호출로 매핑되므로 항상 동일합니다. | ||
DataSourceProductVersionNormalized | 문자열 |
String.Compare() 와 비교할 수 있는 데이터 소스의 표준화된 버전. 이 형식은 버전 10이 버전 1과 버전 2 사이에 정렬되지 않도록 공급자의 모든 버전에서 일관성이 유지됩니다. |
예를 들어, Oracle 공급자는 표준화된 버전에 “nn.nn.nn.nn.nn” 형식을 사용하므로 Oracle 8i 데이터 소스에서는 “08.01.07.04.01”을 반환합니다. SQL Server에서는 일반적인 Microsoft “nn.nn.nnnn” 형식을 사용합니다. | ||
경우에 따라 DataSourceProductVersion과 DataSourceProductVersionNormalized는 동일한 값입니다. OLE DB의 경우 기본 API에서 동일한 함수 호출로 매핑되므로 항상 동일합니다. | ||
GroupByBehavior | GroupByBehavior | GROUP BY 절의 열과 선택 목록의 집계되지 않은 열 간의 관계를 지정합니다. |
IdentifierPattern | String | 식별자와 일치하고 일치하는 식별자 값이 있는 정규식입니다. 예: “[A-Za-z0-9_#$]”. |
IdentifierCase | IdentifierCase | 따옴표로 묶지 않은 식별자의 대/소문자 구분 여부를 나타냅니다. |
OrderByColumnsInSelect | bool | ORDER BY 절의 열이 선택 목록에 들어 있어야 하는지 여부를 지정합니다. true 값은 선택 목록에 있어야 함을 나타내며 false 값은 선택 목록에 있을 필요가 없음을 나타냅니다. |
ParameterMarkerFormat | 문자열 | 매개 변수 형식을 지정하는 방법을 나타내는 형식 문자열입니다. |
명명된 매개 변수를 데이터 소스에서 지원하는 경우 매개 변수 이름의 형식이 지정되어야 하는 위치가 이 문자열의 첫 번째 자리 표시자여야 합니다. | ||
예를 들어 데이터 원본에 ‘:’ 접두사가 붙은 명명된 매개 변수가 필요한 경우에는 “:{0}”.이 됩니다. 이 문자열을 “p1”이라는 매개 변수 이름으로 형식을 지정하는 경우 결과 문자열은 “:p1”입니다. | ||
데이터 원본에 '@'의 접두사로 매개 변수가 있어야 하지만 이름이 이미 포함된 경우 ''{0}이고 "@p1" 매개 변수의 서식을 지정한 결과는 "@p1"일 뿐입니다. | ||
명명된 매개 변수가 필요하지 않고 ‘?’ 문자의 사용이 필요한 데이터 원본의 경우 형식 문자열은 ‘?’로만 지정할 수 있으며 이는 매개 변수 이름을 무시합니다. OLE DB의 경우에는 ‘?’가 반환됩니다. | ||
ParameterMarkerPattern | 문자열 | 매개 변수 표식과 일치하는 정규식입니다. 매개 변수 이름의 일치 값(있는 경우)을 포함합니다. |
예를 들어, 매개 변수 이름에 포함될 ‘@’ 선행 문자와 함께 명명된 매개 변수를 지원하는 경우 정규식은 “(@[A-Za-z0-9_$#]*)”입니다. | ||
그러나 명명된 매개 변수가 선행 문자 ‘:’과 함께 지원되며 이 문자가 매개 변수 이름에 포함되어 있지 않은 경우 정규식은 “:([A-Za-z0-9_$#]*)”입니다. | ||
물론 데이터 원본에서 명명된 매개 변수를 지원하는 경우 정규식은 단순히 “?”입니다. | ||
ParameterNameMaxLength | int | 매개 변수 이름의 최대 길이(문자 수)입니다. Visual Studio에서는 매개 변수 이름이 지원되는 경우 최대 길이에 대한 최소 값을 30자로 간주합니다. |
데이터 소스에서 명명된 매개 변수를 지원하지 않는 경우 이 속성은 0을 반환합니다. | ||
ParameterNamePattern | 문자열 | 유효 매개 변수 이름과 일치하는 정규식입니다. 매개 변수 이름에 사용할 수 있는 문자에 관한 규칙은 데이터 소스마다 다릅니다. |
Visual Studio에서는 매개 변수 이름이 지원되는 경우 문자 "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}"를 매개 변수 이름에 사용할 수 있는 최소 지원 문자 집합으로 간주합니다. | ||
QuotedIdentifierPattern | 문자열 | 따옴표로 묶은 식별자와 일치하고 따옴표를 제외한 일치하는 식별자 값이 있는 정규식입니다. 예를 들어 데이터 원본이 큰따옴표를 사용하여 따옴표가 붙은 식별자를 식별하는 경우 "(([^\"]|\"\")*)"입니다. |
QuotedIdentifierCase | IdentifierCase | 따옴표로 묶은 식별자의 대/소문자 구분 여부를 나타냅니다. |
StatementSeparatorPattern | 문자열 | 문 구분 기호와 일치하는 정규식입니다. |
StringLiteralPattern | 문자열 | 문자 리터럴과 일치하고 일치하는 리터럴 값이 있는 정규식입니다. 예를 들어, 데이터 소스에서 작은따옴표를 사용하여 문자열을 식별하는 경우 정규식은 "('([^']|'')*')"'입니다. |
SupportedJoinOperators | SupportedJoinOperators | 데이터 소스에서 지원하는 SQL 조인 문의 형식을 지정합니다. |
DataTypes
열 이름 | 데이터 형식 | 설명 |
---|---|---|
TypeName | 문자열 | 공급자별 데이터 형식 이름입니다. |
ProviderDbType | int | 매개 변수 형식을 지정할 때 사용해야 하는 공급자별 형식 값입니다. 예를 들어 SqlDbType.Money 또는 OracleType.Blob 입니다. |
ColumnSize | long | 숫자가 아닌 열 또는 매개 변수의 길이는 공급자에서 이 형식에 대해 정의된 길이 또는 최대값을 나타냅니다. |
문자 데이터의 경우 이 값은 데이터 소스에 정의한 최대값 또는 정의된 길이(단위)입니다. Oracle에는 일부 문자 데이터 형식에 대해 길이를 지정하고 나서 실제 스토리지 크기를 지정하는 개념이 있습니다. 이 개념에서는 Oracle의 단위 길이만을 정의합니다. | ||
날짜/시간 데이터 형식의 경우, 최대값에서 소수로 나타낸 시간(초)의 정밀도를 허용한다고 가정할 때 문자열 표시의 길이입니다. | ||
데이터 형식이 숫자이면 이것은 데이터 형식의 최대 전체 자릿수에 대한 상한입니다. | ||
CreateFormat | 문자열 | 이 열을 CREATE TABLE과 같은 데이터 정의 문에 추가하는 방법을 나타내는 형식 문자열입니다.
CreateParameter 배열의 각 요소는 형식 문자열에 “매개 변수 표식”으로 나타나야 합니다. |
예를 들어, SQL 데이터 형식 DECIMAL에는 정밀도와 배율이 필요합니다. 이 경우 형식 문자열은 “DECIMAL({0},{1})”입니다. | ||
CreateParameters | 문자열 | 이 데이터 형식의 열을 만들 때 지정해야 하는 생성 매개 변수입니다. 각 생성 매개 변수는 문자열로 나열되며 제공되는 순서대로 쉼표로 구분됩니다. |
예를 들어, SQL 데이터 형식 DECIMAL에는 정밀도와 배율이 필요합니다. 이 경우, 생성 매개 변수에는 "정밀도, 배율" 문자열이 포함되어야 합니다. | ||
정밀도 10과 배율 2를 사용하여 DECIMAL 열을 만들기 위한 텍스트 명령에서 CreateFormat 열의 값은 DECIMAL({0},{1})”이며 전체 형식 사양은 DECIMAL(10,2)입니다. | ||
DataType | 문자열 | .NET Framework 형식의 데이터 형식 이름입니다. |
IsAutoincrementable | bool |
true - 이 데이터 형식의 값이 자동 증분됩니다. |
false - 이 데이터 형식의 값이 자동 증분되지 않습니다. |
||
이 값은 이 데이터 형식 열의 자동 증분 여부를 나타낼 뿐, 이 형식의 모든 열이 자동 증분되도록 지정하지는 않습니다. | ||
IsBestMatch | Bool |
true - 데이터 형식이 데이터 저장소의 모든 데이터 형식과 DataType 열의 값으로 나타낸 .NET Framework 데이터 형식 사이에서 정확히 일치합니다. |
false - 데이터 형식이 정확히 일치하지 않습니다. |
||
DataType 열의 값이 동일한 각 행 집합의 경우, IsBestMatch 열은 하나의 행에서만 true로 설정됩니다. | ||
IsCaseSensitive | bool |
true - 데이터 형식이 문자 형식이며 대/소문자를 구분합니다.false - 데이터 형식이 문자 형식이 아니거나 대/소문자를 구분하지 않습니다. |
IsFixedLength | bool |
true - DDL(데이터 정의 언어)에서 만든 데이터 형식의 열 길이가 고정 길이입니다.false - DDL에서 만든 데이터 형식의 열 길이가 가변 길이입니다.DBNull.Value - 공급자가 필드를 고정 길이 열에 매핑할지 가변 길이 열에 매핑할지 여부를 알 수 없습니다. |
IsFixedPrecisionScale | bool |
true - 데이터 형식의 정밀도와 배율이 고정되어 있습니다.false - 데이터 형식의 정밀도와 배율이 고정되어 있지 않습니다. |
IsLong | bool |
true - 데이터 형식에 매우 긴 데이터가 포함되며 매우 긴 데이터의 정의는 공급자별로 다릅니다.false - 데이터 형식에 매우 긴 데이터가 포함되지 않습니다. |
IsNullable | bool |
true - Null 허용 데이터 형식입니다.false - Null 허용 데이터 형식이 아닙니다.DBNull.Value - 데이터 형식이 Null 허용인지 여부를 알 수 없습니다. |
IsSearchable | bool |
true - 데이터 형식을 LIKE 조건부를 제외한 모든 연산자와 함께 WHERE 절에서 사용할 수 있습니다.false - 데이터 형식을 LIKE 조건부를 제외한 모든 연산자와 함께 WHERE 절에서 사용할 수 없습니다. |
IsSearchableWithLike | bool |
true - 데이터 형식을 LIKE 조건부에서 사용할 수 있습니다.false - 데이터 형식을 LIKE 조건부에서 사용할 수 없습니다. |
IsUnsigned | bool |
true - 부호 없는 데이터 형식입니다.false - 부호 있는 데이터 형식입니다.DBNull.Value - 데이터 형식에 해당되지 않습니다. |
MaximumScale | short | 형식 표시기가 숫자 형식인 경우 소수점 오른쪽에 허용되는 최대 자리수입니다. 그렇지 않으면 DBNull.Value 입니다. |
MinimumScale | short | 형식 표시기가 숫자 형식인 경우 소수점 오른쪽에 허용되는 최소 자리수입니다. 그렇지 않으면 DBNull.Value 입니다. |
IsConcurrencyType | bool |
true – 행이 변경될 때마다 데이터베이스에서 데이터 형식을 업데이트하며 열의 값이 모든 이전 값과 다릅니다.false - 행이 변경될 때마다 데이터베이스에서 데이터 형식을 업데이트하지 않습니다.DBNull.Value – 데이터베이스에서 해당 데이터 형식을 지원하지 않습니다. |
IsLiteralsSupported | bool |
true – 데이터 형식을 리터럴로 표현할 수 있습니다.false – 데이터 형식을 리터럴로 표현할 수 없습니다. |
LiteralPrefix | 문자열 | 지정한 리터럴에 적용된 접두사입니다. |
LitteralSuffix | 문자열 | 지정한 리터럴에 적용된 접미사입니다. |
NativeDataType | String | 데이터 형식의 OLE DB 유형을 표시하는 OLE DB별 열입니다. |
MetaDataCollections
열 이름 | 데이터 형식 | Description |
---|---|---|
CollectionName | 문자열 | 컬렉션을 반환하기 위해 GetSchema 메서드로 전달할 컬렉션의 이름입니다. |
NumberOfRestriction | int | 컬렉션에 지정할 수 있는 제한 수입니다. |
NumberOfIdentifierParts | int | 복합 식별자/데이터베이스 개체 이름의 부분 개수. 예를 들어, SQL Server에서는 테이블에 대한 부분이 3개이고 열에 대한 4개입니다. Oracle에서는 테이블에 대한 부분이 2개이고 열에 대한 부분이 3개입니다. |
제한 사항
열 이름 | 데이터 형식 | Description |
---|---|---|
CollectionName | 문자열 | 이러한 제한이 적용되는 컬렉션의 이름입니다. |
RestrictionName | 문자열 | 컬렉션에서 제한의 이름입니다. |
RestrictionDefault | 문자열 | 무시됩니다. |
RestrictionNumber | int | 특정 제한이 속한 Restrictions 컬렉션의 실제 위치입니다. |
테이블
열 이름 | 데이터 형식 | Description |
---|---|---|
table_catalog | String | 테이블의 카탈로그입니다. |
table_schema | String | 해당 테이블을 포함하는 스키마입니다. |
table_name | String | 테이블 이름입니다. |
table_type | String | 테이블 유형입니다. VIEW 또는 BASE TABLE이 될 수 있습니다. |