Oracle Mobile SQL

Oracle Mobile SQL

Для работы с базами данных в последнее время появилось множество утилит, которые имеют удобный графический интерфейс. Однако для получения практического опыта при изучении SQL желательно на первых порах поработать ручками. Навыки, полученные при этом, помогают в критических ситуациях, когда необходимо что-то исправить на компьютере у клиента. В состав пакета установки Oracle 9i Lite включена консольная утилита Oracle Mobile SQL (msql), специально предназначенная для интерактивного и пакетного выполнения SQL-команд.

Данная утилита поддерживает все подмножество SQL-команд сервера Oracle 9i Lite, а также большинство команд стандартной для баз данных корпорации Oracle утилиты SQL*Plus. Вызов утилиты msql из командной строки операционной системы имеет следующий формат:

msql имя_пользователя/пароль@ jdbc_url_строка_подключения

Например:

D:\> msql system/manager@jdbc: polite:tst1_dsn

или

D:\> msql system/manager@jdbc: odbc:tst1_dsn

Для начала выполнения команды доступны следующие способы:
— постановка точки с запятой ';' в конце команды и нажатие клавиши Enter;
— постановка точки с запятой ';' или наклонной черты '/' на последней строке командного буфера;
— постановка наклонной черты '/' в ответ на системную подсказку.

Команды языка запросов SQL могут быть размещены на нескольких строчках командного буфера. Кроме команд языка SQL, утилита msql поддерживает дополнительный набор команд:

CONN[ECT] имя_пользователя/пароль@jdbc_url_строка_подключения — установка соединения с сервером базы данных под другим именем и паролем.
DISC[ONNECT] — разрыв соединения с базой данных.
SPOOL — включение/выключение режима вывода протокола в спулер (текстовый файл, принтер и т.д.).
SPOOL — вывод текущего статуса спулера.
SPOOL <имя_файла> — задание имени файла для спулера.
SPOOL OFF — выключение спулера.
START (или @) — команда запуска командного файла (SQL-скрипта). Имеет формат:
START имя_файла

или
@ имя_файла

MSQL также поддерживает вариант команды вида '@@' для выполнения скриптов из файлов с указанием относительного пути.

DESC[RIBE] [схема.]объект — вывод на экран структуры таблицы, представления или синонима.
SET — команда настройки параметров msql.
SET echo ON/OFF — разрешает или запрещает вывод на экран процесса выполнения скрипта.
SET sqlp[rompt] ON/OFF — устанавливает режим запроса значений переменных привязки или замены.
SET hea[ding] ON/OFF — разрешает или запрещает вывод на экран заголовков колонок.
SET auto[commit] ON/OFF — при заданном режиме ON Oracle 9i Lite автоматически фиксирует изменения после успешного выполнения команд INSERT, UPDATE или DELETE.
SET TRANSACTION ISOLATION LEVEL [READ COMMITTED][READ WRITE] — устанавливает режим изоляции транзакций.
SET long длина — устанавливает максимальную отображаемую длину колонок типа LONG.
REM или '--' — оператор комментария.
DEF[INE] имя_переменной = значение_переменной — создание переменной с заданным значением.
UNDEF[INE] имя_переменной — удаление переменной.
CLS или CLE[AR] — очищает экран.
CLE[EAR] BUFFER — очищает внутренний SQL-буфер.
PAUSE — ожидание нажатия пользователем клавиши Enter.
LIST — вывод на экран содержимого SQL-буфера.
[HO]ST команда — выполнение команды операционной системы.
CLOCK start — команда начала отсчета времени.
CLOCK stop — вывод на экран времени, прошедшего после выполнения команды CLOCK start.
REPEAT UNTIL — команда циклического выполнения блока команд (поддерживаются вложенные циклы), например:

clock start
define N = 0
create table test (c1 number, c2 varchar2 (256));
repeat
insert into test values ('%N%', 'abcde');
define N = N + 1
until N = 10000
clock stop;

DIR или LS — вывод на экран списка имени и владельца таблиц.
DIR имя_таблицы — вывод на экран содержимого таблицы (аналогично запросу 'SELECT * FROM имя_таблицы').
DIR VIEW — вывод на экран списка имени и владельца представлений.
DIR SEQUENCE — вывод на экран списка имени и владельца последовательностей.
EXIT|QUIT — завершение сессии и передача управления операционной системе.
В отличие от SQL*Plus, команда 'exit' в командных файлах рассматривается только в контексте данного файла.

Например, если командный файл t1.sql вызывает файл t2.sql, включающий команду 'exit', то MSQL не разорвет соединение с БД и не завершит работу после выполнения скрипта t2.sql.

Сергей Бердачук, Berdachuk@tut.by
http://berdachuk.at.tut.by



Компьютерная газета. Статья была опубликована в номере 16 за 2004 год в рубрике программирование :: разное

©1997-2024 Компьютерная газета