Oracle Mobile SQL

Источник: oracloid

Для работы с базами данных в последнее время появилось множество утилит, которые имеют удобный графический интерфейс. Однако для получения практического опыта при изучении 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.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=16444