Установка в isql диалекта

Установка в isql диалекта

Если вы запустили isql и соединились с базой данных без указания диалекта, утилита принимает диалект базы данных.

Вы можете установить диалект для isql несколькими способами.

* При запуске isql:

[bin] isql -s n

где n- число 1, 2 или 3. Если вы зададите диалект этим способом, isql сохранит данный диалект после соединения, если только вы явно его не измените.

* В сессии isql или в скрипте SQL:

SET SQL DIALECT N;

Утилита продолжит работать с этим диалектом, пока он не будет явно изменен. Диалект не может быть установлен как параметр оператора CREATE DATABASE.

! ! !

ВНИМАНИЕ! Когда вы создаете базу данных интерактивно с использованием isql, база данных будет в том диалекте, который в настоящий момент существует у isql во время выдачи оператора CREATE DATABASE. Вам нужно будет учесть это, если у вас была перед этим открыта база данных с диалектом 1, потому что isql останется в диалекте 1 и после отключения от базы данных с диалектом 1.

. ! .

Воздействие диалектов

Эффекты команд могут иметь некоторые изменения в зависимости от диалекта.

* Клиент диалекта 1 обрабатывает все команды в соответствии с ожиданием языка InterBase 5 и синтаксиса с некоторыми изменениями. Например, если вы создаете таблицу, в которой задается столбец типа DATE, вы увидите информационное сообщение, говорящее, что "DATE datatype is now called TIMESTAMP" (Тип данных DATE сейчас называется TIMESTAMP).

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

* Клиент диалекта 3 анализирует все операторы в соответствии с родной семантикой SQL Firebird: кавычки используются для идентификаторов с ограничителями и не распознаются как ограничители строк, тип данных DATE содержит только дату, а истинные числа (числа с фиксированной точкой) с точностью больше 9 хранятся как BIGINT (NUMERIC(18, О) в Firebird 1.0.x).