Скрипты по изменению базы данных дают вам постоянную фиксацию эволюции вашей базы данных и возможность отслеживать и отменять любые неразумные изменения. Утилита isql может создавать скрипт в процессе интерактивной сессии, передавая ваш ввод с клавиатуры в указанный файл. Чтобы узнать, как это сделать, прочтите примечания к команде OUTPUT в следующем разделе.
Вы можете запустить скрипт, созданный в isql или в любом другом текстовом редакторе, посредством команды INPUT. Она может быть также использована внутри скрипта для создания вложенных скриптов.
Общие команды isql выполняют множество полезных задач, включая чтение, запись и выполнение скриптов схемы, а также выполнение команд командной строки. Командами являются BLOBDUMP, BLOBVIEW, EDIT, EXIT, HELP, INPUT, OUTPUT, QUIT и SHELL.
BLOBDUMP сохраняет данные BLOB В указанном файле:
BLOBDUMP идентификатор-BLOB имя-файла;
где идентификатор-BLOB- идентификатор, содержащий два шестнадцатеричных числа, разделенных двоеточием (:). Первое число является идентификатором таблицы, содержащей столбец BLOB. Второе - последовательный номер объекта. Для получения этого идентификатора выдайте любой оператор SELECT, который выбирает столбец BLOB. Выход покажет шестнадцатеричный идентификатор BLOB выше или на месте столбца BLOB в зависимости от того, установлен ли SET [DISPLAY] В ON или OFF.
имя-файла - полное имя файловой системы того файла, который получает данные.
Пример:
SQL> BLOBDOMP 32:d48 IMAGE.JPG ;
BLOBVXEW отображает данные BLOB В текстовом редакторе по умолчанию.
BLOBVIEW идентификатор-BLOB ;
где идентификатор-BLOB- идентификатор, содержащий два шестнадцатеричных числа, разделенных двоеточием (:). См. описание BLOBDUMP для определения идентификатора BLOB, который вы ищите. В текущей версии BLOBVIEW не поддерживает редактирования BLOB В режиме онлайн. Это может быть добавлено в будущие реализации.
Пример:
SQL> BLOBVIEW 85:7 ;
Замечание по ошибке: BLOBVIEW может вернуть ошибку "Invalid transaction handle" (Неверный дескриптор транзакции) после закрытия редактора. Для исправления ситуации запустите транзакцию вручную с помощью:
SQL> SET TRANSACTION;
EDIT позволяет отредактировать и заново выполнить предыдущую команду isql или пакет команд в исходном файле.
SQL> EDIT [имя-файла] ;
где имя-файла- (необязательно) полностью заданное имя файла для редактирования в файловой системе.
Пример:
SQL> EDIT /usr/mystuff/batch.sql
Команда EDIT также может быть использована для открытия предыдущих операторов в редакторе:
SQL> SELECT EMP_CODE, EMP_NAME FROM EMPLOYEE ; SQL> EDIT ;
Нажмите клавишу для отображения "прокрутки" вашей сессии isql в текстовом редакторе ASCII по умолчанию в вашей системе. Отредактируйте, при желании сохраните и выйдите. Отредактированный пакет команд будет заново выполнен в вашей командной строке isql после того, как вы выйдете из редактора.
EXIT подтверждает текущую транзакцию без подсказки, закрывает базу данных и завершает сессию isql. Если вам нужно выполнить откат, а не подтверждение транзакции, используйте QUIT.
SQL> EXIT ;
EXIT не принимает никаких аргументов.
HELP отображает список команд isql с их описанием. Вы можете объединить эту команду с OUTPUT для вывода списка в файл.
SQL> HELP ;
Пример:
SQL> OUTPUT HELPLIST.TXT ; SQL> HELP ;
SQL> OUTPUT ; /* переключает вывод опять на монитор */
HELP не принимает никаких аргументов.
INPUT читает и выполняет блок команд из указанного текстового файла (скрипта SQL). Входные файлы могут содержать другие команды INPUT, предоставляя таким образом возможность проектирования цепочного или структурированного набора скриптов DDL. Для создания скриптов используйте текстовый редактор или создавайте их интерактивно посредством команд OUTPUT или EDIT.
SQL> INPUT имя-файла ;
где имя-файла - полностью заданное имя файла, содержащего операторы и команды SQL.
Пример:
SQL> INPUT /data/schemascripts/myscript.sql ;
В скрипте:
CREATE EXCEPTION Е010 'This is an exception.'; COMMIT;
-- TABLE DEFINITIONS
INPUT '/data/schemascripts/tabledefs.sql'; - CONSTRAINT DEFINITIONS
INPUT 'data/schemascripts/constraintdefs.sql';
OUTPUT перенаправляет выходные данные в файл на диске или (назад) на стандартное устройство вывода (монитор). Используйте команды SET ECHO для включения или исключения из вывода команд:
* SET ECHO ON - для вывода команд и данных;
* SET ECHO OFF - для вывода только данных.
SQL> OUTPUT [имя-файла];
где имя-файла - полностью заданное имя файла, содержащего операторы и команды SQL. Если имя файла не указано, результаты появятся на стандартном выводе, на мониторе (т. е. вывод в файл отключен).
Читать дальше