Доступные версии документации

Получить метаданные столбцов табличного объекта (column_info)

Назначение
 

Метод column_info предоставляет метаданные столбцов табличного объекта БД.

Пакет

Package Linter::db

Прототип
$sth = $dbh->column_info($catalog, $schema, $table, $column);
Параметр Описание
$catalog  См. метод table_info
$schema  См. метод table_info
$table  См. метод table_info
$column  Имя столбца табличного объекта БД (строка длиной не более 66 символов в ANSI- кодировке)
Возвращаемые значения
Переменная Описание
$sth Объект Statement Handle

Запись метаданных о столбце табличного объекта БД представлена в виде массива из следующих элементов:

Имя элемента Значение
TABLE_CAT  Пустая строка
TABLE_SCHEM  Имя схемы объекта (символьное значение в кодировке ANSI длиной до 66 символов)
TABLE_NAME  Имя таблицы
COLUMN_NAME  Имя столбца
DATA_TYPE Числовой идентификатор типа данных ODBC SQL (см. таблицу 4)
TYPE_NAME  Имя типа данных в терминах СУБД ЛИНТЕР
COLUMN_SIZE  Максимальный размер для символьного представления числовых типов данных
BUFFER_LENGTH  Размер буфера для загрузки значения столбца
DECIMAL_DIGITS  Количество десятичных цифр после запятой, используемых для представления значения числового типа данных
NUM_PREC_RADIX  Основание системы счисления: 10 для числовых типов данных и undef для остальных
NULLABLE  

Индикатор допустимости NULL-значений. Возможные значения:

  • SQL_NO_NULLS – 0 (NULL-значения не разрешены);

  • SQL_NULLABLE – 1 (NULL-значения разрешены)

REMARKS  Описание (комментарий) столбца (если данная информация присутствует в системной таблице $$$OBJ_COMMENTS или пустая строка, если комментарий отсутствует)
COLUMN_DEF  Значение столбца по умолчанию (или undef, если значение по умолчанию не установлено)
SQL_DATA_TYPE  Числовой идентификатор типа данных ODBC SQL (см. таблицу 4)
SQL_DATETIME_SUB  Целое число, описывающее подтип данных DATE
CHAR_OCTET_LENGTH  Максимальная длина в байтах символьного или байтового типа данных столбца
ORDINAL_POSITION  Порядковый номер столбца в таблице (отсчет начинается с 1)
IS_NULLABLE  Индикатор допустимости NULL-значения. Возможные значения: 'NO', 'YES' , ''

Примечание

Если клиентское приложение выполняется от имени пользователя БД, который не имеет дискретного или мандатного доступа к некоторым объектам БД, то результат не будет содержать инфорацию об этих объектах.

Таблица 4. Соответствие типов данных СУБД ЛИНТЕР и типов данных ODBC SQL
Имя типа данных СУБД ЛИНТЕРИдентификатор типа данных ODBC SQLЧисловой идентификатор ODBC SQL
CHARACTERSQL_CHAR1
SMALLINTSQL_SMALLINT5
INTEGERSQL_INTEGER4
BIGINTSQL_BIGINT-5
REALSQL_REAL7
DOUBLESQL_DOUBLE8
DATESQL_TYPE_TIMESTAMP93
DECIMALSQL_DECIMAL3
BYTESQL_BINARY-2
BLOBSQL_LONGVARBINARY-4
VARCHARSQL_VARCHAR12
VARBYTESQL_VARBINARY-3
BOOLEANSQL_BIT-7
NCHARSQL_WCHAR-8
NCHAR VARYINGSQL_WVARCHAR-9
EXTFILESQL_CHAR1

Примечание

Для перемещения по записям массива можно использовать метод fetchall_arrayref, fetchall_hashref и т. п.

Примеры

Получить информацию о столбцах таблицы PERSON:

$sth = $dbh->column_info('', '', 'PERSON', '');
while (my $data_ref = $sth->fetchrow_hashref())
{
    print($data_ref->{TABLE_CAT} . "\n");
    print($data_ref->{TABLE_SCHEM} . "\n");
    print($data_ref->{TABLE_NAME} . "\n");
    print($data_ref->{COLUMN_NAME} . "\n");
    print($data_ref->{DATA_TYPE} . "\n");
    print($data_ref->{TYPE_NAME} . "\n");
    print($data_ref->{COLUMN_SIZE} . "\n");
    print($data_ref->{BUFFER_LENGTH} . "\n");
    print($data_ref->{DECIMAL_DIGIT} . "\n");
    print($data_ref->{NUM_PREC_RADIX} . "\n");
    print($data_ref->{NULLABLE} . "\n");
    print($data_ref->{REMARKS} . "\n");
    print($data_ref->{COLUMN_DEF} . "\n");
    print($data_ref->{SQL_DATA_TYPE} . "\n");
    print($data_ref->{SQL_DATETIME_SUB} . "\n");
    print($data_ref->{CHAR_OCTET_LENGTH} . "\n");
    print($data_ref->{ORDINAL_POSITION} . "\n");
    print($data_ref->{IS_NULLABLE} . "\n");
}
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter