Чтение онлайн

на главную - закладки

Жанры

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

Символ терминатора по умолчанию может быть изменен для всех операторов за исключением операторов языка процедур (PSQL) при использовании в скрипте команды SET TERM [33] .

Терминаторы и язык процедур (PSQL)

PSQL не допускает никаких терминаторов за исключением точки с запятой (;). Такое ограничение необходимо, потому что CREATE PROCEDURE, RECREATE PROCEDURE, ALTER PROCEDURE, CREATE TRIGGER и ALTER TRIGGER вместе с их операторами PSQL являются сложными операторами с

их собственными правилами. Компилятору нужно видеть точку с запятой для различения каждого оператора PSQL.

33

Команда SET TERM не является SQL-оператором, понимаемым Firebird. Это команда утилиты 1SQL, позволяющая задать индикатор окончания оператора DDL. SET TERM используется только там, где инструмент разработчика может выполнить несколько команд DDL и DML в одном скрипте.
– Прим. науч. ред.

Следовательно, в скриптах необходимо переопределять используемый в командах скрипта терминатор перед началом операторов PSQL для хранимых процедур и триггеров. После последнего оператора END, когда завершается исходный текст процедуры, следует восстановить значение терминатора по умолчанию, используя другой оператор SET TERM. Пример:

CREATE GENERATOR GEN_MY_GEN ;

SET TERM ^^;

CREATE TRIGGER BI_TABLEA_0 FOR TABLEA

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

IF (NEW.PK IS NOT NULL) THEN

NEW.PK = GEN_ID(GEN_MY_GEH, 1);

END ^^

SET TERM ; ^^

. . .

Любая строка может быть использована в качестве альтернативного терминатора, например:

SET TERM @ ! #;

CREATE PROCEDURE...

AS

BEGIN

. . . ;

. . . ;

END @!#

SET TERM ;@!#

/**/

COMMIT;

/**/

SET TERM +;

CREATE PROCEDURE...

AS

BEGIN

. . .;

. . . ;

END +

SET TERM ; +

/**/

COMMIT;

Оператор SQL без сообщений не выполняется, если его текст следует за символом терминатора в той же строке. Пробелы и комментарии могут следовать за терминатором, но не другие операторы.

Например, в следующей последовательности оператор COMMIT не будет выполняться:

ALTER TABLE ATABLE ADD F2 INTEGER; COMMIT;

в то время как последовательность далее правильная:

ALTER TABLE ATABLE ADD F2 INTEGER; /* счетчик бобов */

COMMIT;

Основные шаги

Основные шаги по использованию файлов скриптов описаны в следующих разделах.

Шаг 1: создание файла скрипта

Используйте любой подходящий текстовый редактор. На стадии обучения вы можете за каждым оператором DDL записывать оператор COMMIT, чтобы обеспечить видимость объекта последующим операторам. Когда вы получите больше опыта, вы научитесь подтверждать операторы в блоках, применяя SET AUTODDL ON и SET AUTODDL OFF с целью управления взаимозависимостями и при тестировании/отладке скриптов.

! ! !

ВНИМАНИЕ!

Убедитесь, что каждый скрипт заканчивается символом перевода строки и, по меньшей мере, одной пустой строкой.

. ! .

Шаг 2: выполнение скрипта

Используйте команду INPUT в сессии isql, или кнопку Выполнить (Execute), или аналогичную в вашем инструменте управления базой данных.

isql в POSIX:

SQL> INPUT /data/scripts/myscript.sql;

isql в Win32:

SQL> INPUT d:\data\scripts\myscript.sql;

Шаг 3: просмотр результата и подтверждение изменений базы данных

Разные инструменты Firebird и версии isql возвращают различную информацию в случае ошибочного выполнения скрипта при наличии неверной команды. Средства,

добавленные после Firebird 1.0, обеспечивают более подробные сообщения об ошибках скрипта, чем предыдущие версии.

Как создавать скрипты

Вы можете создавать скрипты DDL различными способами, включая следующие:

* в сессии интерактивной isql с использованием команды OOTPOT для передачи серий операторов DDL в файл;

* в текстовом редакторе ASCII, который выполняет переводы строки в соответствии с правилами командной строки операционной системы, где будет выполняться скрипт DDL;

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

* используя инструмент CASE, который может выводить скрипты DDL в соответствии с соглашениями Firebird (InterBase).

Вы можете использовать любой текстовый редактор для создания файла скрипта SQL, если выходной формат файла является полным текстом (ASCII) и символы завершения строки соответствуют правилам командной строки вашей операционной системы:

* в Windows терминатор строки - символ возврата каретки плюс символ перевода строки (ASCII 13, за которым следует ASCII 10);

* в Linux/UNIX терминатор строки - символ перевода строки, или "новая строка" (ASCII 10);

* в Mac OS X терминатор строки- новая строка (ASCII 10), а в родных Macintosh это возврат каретки (ASCII 13).

! ! !

СОВЕТ. См. также в isql возможность извлечения метаданных, которая может быть полезной для извлечения схемы БД в формате скрипта.

. ! .

Некоторые инструменты редактирования имеют возможность сохранять данные в различных текстовых форматах. Это может быть полезным, например, при создании скриптов, совместимых с Linux, на машине Windows. При этом убедитесь, что вы используете редактор, который сохраняет только полный текст ASCII.

Подготовленный файл скрипта схемы должен начинаться с оператора CREATE DATABASE или, если база данных уже существует, с оператора CONNECT (включая имя пользователя и пароль в апострофах). Эти операторы задают базу данных, с которой оперирует файл скрипта. За ключевыми словами CREATE или CONNECT должна следовать полная спецификация файла базы данных в апострофах: полный абсолютный путь и имя файла базы данных.

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

Часовая башня

Щерба Наталья Васильевна
3. Часодеи
Фантастика:
фэнтези
9.43
рейтинг книги
Часовая башня

Попаданка в Измену или замуж за дракона

Жарова Анита
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Попаданка в Измену или замуж за дракона

На границе империй. Том 9. Часть 3

INDIGO
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 3

Жена на пробу, или Хозяйка проклятого замка

Васина Илана
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Жена на пробу, или Хозяйка проклятого замка

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство

Восход. Солнцев. Книга I

Скабер Артемий
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга I

Инвестиго, из медика в маги

Рэд Илья
1. Инвестиго
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Инвестиго, из медика в маги

Надуй щеки!

Вишневский Сергей Викторович
1. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки!

Случайная свадьба (+ Бонус)

Тоцка Тала
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Случайная свадьба (+ Бонус)

Газлайтер. Том 5

Володин Григорий
5. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 5

Мастер Разума III

Кронос Александр
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Мастер Разума III

Наследник 2

Шимохин Дмитрий
2. Старицкий
Фантастика:
попаданцы
альтернативная история
фэнтези
5.75
рейтинг книги
Наследник 2

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник