Вход/Регистрация
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
вернуться

Борри Хелен

Шрифт:

WHERE START_DATE < CAST ('12/31/2003' AS DATE);

В выражениях, где смешиваются целые данные и числовые строки, в диалекте 1 строки неявно преобразуются в целое, если это возможно. В следующей операции:

3 + '1'

диалект 1 автоматически преобразует символ "1" в SMALLINT, в то время как диалект 3 вернет ошибку. Он требует явного преобразования типов:

3 + CAST('1' AS SMALLINT)

Оба диалекта вернут ошибку в следующем операторе, потому что Firebird не может преобразовать символ "а" в целое:

3 + 'а'

Явное преобразование типов: CAST

В тех случаях, когда Firebird не может выполнить неявное преобразование типов, вы должны выполнить явное преобразование типов посредством функции CAST. Используйте CAST для преобразования одного типа данных в другой в операторе SELECT обычно в предложении WHERE для сравнения различных типов данных. Синтаксис функции:

CAST (значение | NOLL AS тип данных)

Вы можете использовать CAST для сравнения столбцов с различными типами данных в той же таблице или из различных таблиц. Например, вы можете преобразовывать правильно сформированную строку в типы дата/время, а также во множество числовых типов. Подробную информацию о преобразованиях типов данных смотрите в остальных главах этой части.

Изменение определения столбцов и доменов

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

* Firebird не допускает изменения типа данных столбца или домена, которое может привести к потере данных. Например, количество символов в столбце не может быть меньше наибольшего размера столбца.

* Преобразование числового типа данных в строковый требует минимального размера строкового типа, как показано в табл. 8.3.

Таблица 8.3. Минимальное количество символов для числовых преобразований

Тип данных Минимальная длина символьного типа
BIGINT 19 (или 20 для чисел со знаком)
DECIMAL 20
DOUBLE 22
FLOAT 13
INTEGER 10 (11 для чисел со знаком)
NUMERIC 20 (или 21 для чисел со знаком)
SMALLINT 6

Изменение типа данных столбца

Используйте предложение ALTER COLUMN В операторе ALTER TABLE, например:

ALTER TABLE table1 ALTER COLUMN field1 TYPE char(20);

Информацию об изменении столбцов таблицы см. в разд. "Изменение таблиц" главы 16.

Изменение типа данных домена

Используйте предложение TYPE В операторе ALTER DOMAIN для изменения типа данных домена, например,

ALTER DOMAIN MyDomain TYPE VARCHAR(40);

На рис. 8.1 показаны допустимые преобразования типов данных. Более подробную информацию об изменении атрибутов домена см. в главе 13.

Ключевые слова, используемые для спецификации типа данных

Ключевые слова для спецификации типов данных в операторах DDL представлены здесь в качестве краткой справки. Точный синтаксис см. в соответствующей главе, связанной с типами данных этой части книги, а также в главах 13 и 16.

{SMALLINT | INTEGER | FLOAT | DOUBLE PRECISION} [<array_dim>]

| {DATE | TIME | TIMESTAMP} [<array_dim>]

| {DECIMAL INUMERIC} [ (precision [, scale])] [<array_dim>]

{ {CHAR | CHARACTER | CHARACTER VARYING | VARCHAR} [(int)]

[<array_dim>] [CHARACTER SET charname]

| {NCHAR | NATIONAL CHARACTER | NATIONAL CHAR}

[VARYING] [(int)] [<array_diin>]

BLOB [SUB_TYPE int | subtype_name ] [SEGMENT SIZE int]

[CHARACTER SET charname]

BLOB [(seglen [, subtype])]

Рис. 8.1. Допустимые преобразования данных с использованием операторов ALTER COLUMN и ALTER DOMAIN

Специальная тема миграции: диалекты SQL

Если вы бывшие пользователи InterBase или вы использовали устаревшие инструменты миграции для конвертирования других СУБД в InterBase, то диалекты SQL видимо будут влиять на некоторые аспекты новой жизни ваших баз данных и приложений при использовании сервера Firebird.

ODS и диалект

Структура данных на диске (On-Disk Structure, ODS) идентифицирует базу данных в отношении версии релиза сервера Firebird или InterBase, который создает и восстанавливает базу данных. ODS базы данных влияет на совместимость с версиями сер- вера. Файл, подходящий для обновления ODS, может быть создан резервным копированием базы данных (backup) с использованием утилиты gbak той версии, в которой была создана база данных. Утилита должна быть использована с переключателем -t[ransportable]. Когда файл резервной копии будет восстановлен с использованием gbak новой версии, восстановленная база данных будет иметь новую версию ODS. Такое невозможно выполнить для "понижения" ODS для любой базы данных.

  • Читать дальше
  • 1
  • ...
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: