Вы можете опускать ON | OFF и просто использовать SET STATS в качестве переключателя. На рис. 37.6 показан типичный статистический итог, отображаемый после выходных данных запроса.
Рис. 37.6. Пример SET STATS
SET STATISTICS
SET STATISTICS является командой SQL (не isql), которую вы можете использовать в isql - так же, как и в других программах - для вычисления селективности индек- са. Здесь об этом упоминается, потому что, неудивительно, люди часто путают ее с SET STATS. Чтобы узнать, почему селективность является важной для очень динамичных таблиц, см. разд. "Темы оптимизации" в конце главы 18.
Синтаксис этой команды SET STATISTICS имя-индекса. Оператор может быть выполнен только пользователем, который владеет индексом.
SET TERM задает символ, который будет использоваться в качестве терминатора команды или оператора. Он доступен в скриптах. См. замечания об этой команде ранее в данной главе.
SQL> SET TERM строка ;
где строка- символ или символы, которые будут использоваться как терминатор оператора. Значение по умолчанию ";".
Пример:
SET TERM ^^;
CREATE PROCEDURE ADD_WIZTYPE (WIZTYPE VARCHAR (16) , FAVEFOOD VARCHAR ( 20) ) AS
BEGIN
INSERT INTO WIZZO(WIZTYPE, FAVEFOOD) VALUES ( :WIZTYPE, :FAVEFOOD) ; END ^
SET TERM ;^
SET TIME задает, отображать ли время в значении DATE (только диалект 1).
SQL> SET TIME [ON|OFF ];
ON - включает отображение времени в значении DATE диалекта 1.
OFF- отключает отображение времени в значении DATE диалекта 1. Это значение по умолчанию.
Пример:
SQL> SELECT HIRE_DATE FROM EMPLOYEE WHERE EMP_NO = 145; HIRE_DATE
16-MAY-2004
SQL>SET TIME ON ;
SQL> SELECT HIRE_DATE FROM EMPLOYEE WHERE EMP_NO = 145; HIRE DATE
16-MAY-2004 18:20:00
SET WARNINGS задает, выводить ли предупреждающие сообщения. Можно использовать SET WNG как простой переключатель.
SQL> SET WARNINGS [ON |OFF ];
ON- включает отображение предупреждений, если они были отключены, или если сессия была запущена с переключателем -nowamings.
OFF- отключает отображение предупреждений, если они были включены.
Выход из интерактивной сессии isql
Для выхода из утилиты isql и отката (roll back) всей неподтвержденной работы введите:
SQL> QUIT;
Для выхода из утилиты isql и подтверждения всей работы введите:
SQL> EXIT;
Командный режим
Хотя isql имеет некоторые удобные интерактивные возможности, она не ограничена только этим режимом. Многие интерактивные команды доступны также в виде переключателей командной строки. Некоторые функции isql, такие как извлечение метаданных, доступны только из окна командной строки. Операции над входными и выходными файлами не обязательно должны быть интерактивными- фактически вызов isql с переключателями -i[nput] и -o[utput] не вызывает интерактивного режима.
Команды выполняются и после завершения, они автоматически возвращают управление окну командной строки. Вызовы isql также могут находиться внутри скриптов командной строки или внутри пакетных файлов.
Некоторые переключатели могут быть использованы при вызове интерактивного окна isql. Они представлены в табл. 37.1.
Выполнение isql в командном режиме
Откройте окно командной строки и перейдите в каталог Firebird /bin вашей инсталляции сервера или клиента Firebird. Используйте следующий синтаксис для вызовов isql:
isql [режимы] [имя-базы-данных] [-u[ser] <имя-пользователя> -pas[sword] <пароль>]
Для операций SYSDBA вы можете задать переменные операционной системы ISC_USER и ISC_PASSWORD и не вводить их в командах. Для деятельности пользователей, не являющихся SYSDBA, вам всегда нужно задавать учетные данные для операций с базой данных и/или с объектами.
Терминатором по умолчанию является точка с запятой (;). Вы можете заменить ее любым символом или группой символов с помощью режима в командной строке.
! ! !
ПРИМЕЧАНИЕ. Если вы выполняете команду соединения с базой данных для выполнения скрипта, а его набор символов по умолчанию NONE, вам нужно в ваш скрипт включить команду SET NAMES.
. ! .
Вы можете установить диалект isql из командной строки при вызове isql:
isql -s n ;
где n = 1, 2 или 3.
Переключатели командной строки
Требуются только начальные символы переключателей. Вы также можете набрать любую часть текста в квадратных скобках, показанного в табл. 37.1, включая полное название режима. Например, задание -n, -no, -noauto имеет одинаковый эффект.
Таблица 37.1. Переключатели для режимов командной строки isql