열 크기
숫자 데이터 형식의 열(또는 매개 변수) 크기는 열 또는 매개 변수의 데이터 형식에서 사용되는 최대 자릿수 또는 데이터의 전체 자릿수로 정의됩니다. 문자 형식의 경우 데이터의 문자 길이입니다. 이진 데이터 형식의 경우 열 크기는 데이터의 길이(바이트)로 정의됩니다. 시간, 타임스탬프 및 모든 간격 데이터 형식의 경우 이 데이터의 문자 표현에 있는 문자 수입니다. 각 간결한 SQL 데이터 형식에 대해 정의된 열 크기는 다음 표에 나와 있습니다.
SQL 형식 식별자 | 열 크기 |
---|---|
모든 문자 형식[a],[b] | 열 또는 매개 변수의 문자로 정의된 열 크기 또는 최대 열 크기입니다(SQL_DESC_LENGTH 설명자 필드에 포함됨). 예를 들어 CHAR(10)로 정의된 단일 바이트 문자 열의 열 크기는 10입니다. |
SQL_DECIMAL SQL_NUMERIC | 정의된 숫자 수입니다. 예를 들어 NUMERIC(10,3)로 정의된 열의 전체 자릿수는 10입니다. |
SQL_BIT[c] | 1 |
SQL_TINYINT[c] | 3 |
SQL_SMALLINT[c] | 5 |
SQL_INTEGER[c] | 10 |
SQL_BIGINT[c] | 19(서명된 경우) 또는 20(서명되지 않은 경우) |
SQL_REAL[c] | 7 |
SQL_FLOAT[c] | 15 |
SQL_DOUBLE[c] | 15 |
모든 이진 형식[a],[b] | 열 또는 매개 변수의 정의된 길이 또는 최대 길이(바이트)입니다. 예를 들어 BINARY(10)로 정의된 열의 길이는 10입니다. |
SQL_TYPE_DATE[c] | 10(yyyy-mm-dd 형식의 문자 수). |
SQL_TYPE_TIME[c] | 8(hh-mm-ss 형식의 문자 수) 또는 9 + s(hh:mm:ss[.fff...] 형식의 문자 수, 여기서 초 정밀도). |
SQL_TYPE_TIMESTAMP | 16(yyyy-mm-dd hh:mm 형식의 문자 수) 19(yyyy-mm-dd hh:mm:ss 형식의 문자 수) 또는 20 + s (yyyy-mm-dd hh:mm:ss[.fff...] 형식의 문자 수, 여기서 초 정밀도입니다). |
SQL_INTERVAL_SECOND | 여기서 p는 전체 자릿수를 선도하는 간격이고 s는 초 정밀도, p(s=0인 경우) 또는 p+s+1(0인 경우)입니다>.[ d] |
SQL_INTERVAL_DAY_TO_SECOND | 여기서 p는 전체 자릿수를 선도하는 간격이고 s는 초 정밀도, 9+p(s=0인 경우) 또는 10+p+s(0인 경우)입니다>.[ d] |
SQL_INTERVAL_HOUR_TO_SECOND | 여기서 p는 전체 자릿수를 선도하는 간격이고 s는 초 정밀도, 6+p(s=0인 경우) 또는 7+p+s(0인 경우)입니다>.[ d] |
SQL_INTERVAL_MINUTE_TO_SECOND | 여기서 p는 전체 자릿수를 선도하는 간격이고 s는 초 정밀도, 3+p(s=0인 경우) 또는 4+p+s(0인 경우)입니다>.[ d] |
SQL_INTERVAL_YEAR SQL_INTERVAL_MONTH SQL_INTERVAL_DAY SQL_INTERVAL_HOUR SQL_INTERVAL_MINUTE | p, 여기서 p 는 전체 자릿수를 선도하는 간격입니다.[ d] |
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR | 3+p, 여기서 p 는 전체 자릿수를 선도하는 간격입니다.[ d] |
SQL_INTERVAL_DAY_TO_MINUTE | 6+p, 여기서 p 는 전체 자릿수를 선도하는 간격입니다.[ d] |
SQL_INTERVAL_HOUR_TO_MINUTE | 3+p, 여기서 p 는 전체 자릿수를 선도하는 간격입니다.[ d] |
SQL_GUID | 36(aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee 형식의 문자 수) |
[a] ODBC 2.0 드라이버에서 SQLSetParam을 호출하는 ODBC 1.0 애플리케이션 및 ODBC 1.0 드라이버에서 SQLBindParameter를 호출하는 ODBC 2.0 애플리케이션의 경우 *StrLen_or_IndPtr SQL_LONGVARCHAR 또는 SQL_LONGVARBINARY 형식에 대해 SQL_DATA_AT_EXEC 경우 ColumnSize를 전송할 데이터의 총 길이로 설정해야 합니다. 이 표에 정의된 전체 자릿수가 아닙니다.
[b] 드라이버가 변수 형식의 열 또는 매개 변수 길이를 확인할 수 없는 경우 SQL_NO_TOTAL 반환합니다.
[c] SQLBindParameter 의 ColumnSize 인수는 이 데이터 형식에 대해 무시됩니다.
[d] 간격 데이터 형식의 열 길이에 대한 일반적인 규칙은 이 부록의 앞부분에 있는 간격 데이터 형식 길이를 참조하세요.
열(또는 매개 변수) 크기에 대해 반환되는 값은 한 설명자 필드의 값에 해당하지 않습니다. 값은 다음 표와 같이 데이터 형식에 따라 SQL_DESC_PRECISION 또는 SQL_DESC_LENGTH 필드에서 가져올 수 있습니다.
SQL 형식 | 에 해당하는 설명자 필드 열 또는 매개 변수 크기 |
---|---|
모든 문자 및 이진 형식 | LENGTH |
모든 숫자 형식 | PRECISION |
모든 날짜/시간 및 간격 유형 | LENGTH |
SQL_BIT | LENGTH |