ЧАСТЬ III CRT
--------------
В Части III излагается порядок применения утилиты CRT для оп-
ределения характеристик дисплея терминала, используемых набором
полноэкранных продуктов ORACLE. С помощью утилиты CRT Вы можете
также производить настройку экранных дисплеев и отображать прог-
раммные функции на клавиатуру терминала.
Помимо описания основных принципов работы и возможностей ути-
литы CRT, в главе 8 рассматриваются следующие вопросы:
* продукты, использующие определения CRT
* терминалы, поддерживаемые утилитой CRT
* таблицы БД, используемые утилитой
* порядок добавления и переопределения характеристик терминала
* запуск утилиты CRT
ГЛАВА 8 УТИЛИТА ОПРЕДЕЛЕНИЯ ХАРАКТЕРИСТИК ТЕРМИНАЛА CRT
------------------------------------------------------------Д
Утилита CRT создает или переопределяет описания характеристик
терминала, используемые различными продуктами ORACLE. Характерис-
тики терминала используются при решении следующих задач:
* Наложения совокупности программных функций на клавиатуру
терминала, использующую эти функции. Так, например, функции
"перейти к следующему полю" и "показать список допустимых
значений" могут выполняться с помощью функциональных клавиш F1 и F2.
* Определения изобразительных возможностей терминала (инвер-
сия изображения, выделение цветом или яркостью, подчеркива-
ние), используемых полноэкранными продуктами ORACLE.
* Настройки изображений под различные полноэкранные продукты.
Использование определений характеристик устройств отображения
информации, предлагаемых различными поставщиками, позволяет про-
дуктам корпорации ORACLE быть относительно независимыми от аппа-
ратуры. Другими словами, эти продукты на всех устройствах отобра-
жения информации функционируют одинаково.
В каждой операционной среде функционирования СУРБД ORACLE ра-
ботает ряд терминалов, стандартные (по умолчанию) определения ха-
рактеристик которых оформлены в виде CRT-файлов. Дополнить или
переопределить эти характеристики можно с помощью утилиты CRT.
Корпорация Oracle поставляет множество стандартных определе-
ний характеристик различных терминалов и Вам никогда не придется
расширять их состав. Так, например, в состав CRT-файлов входят
IBM3270.CRT, VT220.CRT и D410.CRT. Эти три файла содержат инфор-
мацию о терминалах типа 3270, VT220 и D410, соответственно. Пере-
чень терминалов, для которых имеются стандартные определения ха-
рактеристик, представлен в Приложении E.
Если этот перечень Вас удовлетворяет, обращение к утилите CRT
не потребуется.
Однако, если Вы хотите создать определения характеристик для
нового терминала или переопределить имеющиеся характеристики, Вы
должны обратиться к утилите CRT и внести изменения в соответству-
ющую информацию, хранящуюся в базе, или создать новый CRT-файл.
-- 87 --
Таблицы и файлы CRT
-------------------
Определения характеристик терминалов хранятся в БД ORACLE в
таблицах CRT приблизительно в следующем формате:
Программа ORACLE Тип терминала Клавиша Программная функция
---------------------------------------------------------------ДД
SQL*Forms IAP VT100 7 (число) Следующее поле
SQL*Forms IAP IBM3270 ENTER Следующее поле
Первая строка представленной гипотетической таблицы говорит о
том, что если Вы работаете с утилитой IAP, входящей в состав про-
дукта SQL*Forms, на терминале DEC VT100, то для перехода к следу-
ющему полю на экране Вы должны использовать клавишу, предназна-
ченную для ввода числа 7. Аналогичная функция на терминале IBM
3270 выполняется при помощи клавиши ENTER.
Информация, представленная в первой строке, может быть найде-
на в файле с именем VT100.CRT. Если тип терминала совпадает с
именем CRT-файла, это означает, что в данном файле содержится
описание терминала.
Определения терминалов хранятся в словаре БД ORACLE (в табли-
цах CRT), поэтому CRT-файлы, на использовании которых базируется
работа различных программных продуктов ORACLE, могут быть легко
скомпонованы из указанных таблиц.
Утилита CRT поддерживает несколько таблиц БД (например, таб-
лицы FUNCTIONS и CRT_PRODUCTS), хранящих информацию, касающуюся
терминалов. Пользователи могут корректировать эту информацию, об-
ратившись к таблицам надлежащим образом. С помощью этих таблиц
утилита CRT генерирует CRT-файлы.
Продукты ORACLE, использующие определения CRT
---------------------------------------------
К CRT-файлам в процессе своей работы обращаются следующие
полноэкранные программные продукты ORACLE или средства СУРБД:
* SQL*Forms
* SQL*Calc
* SQL*Menu
* SQL*QMX
* SQL*DBA
Примечание: Несмотря на то, что продукт Easy*SQL тоже обращается
к утилите CRT, он не использует ее для определения функций клавиатуры.
Терминалы, поддерживаемые утилитой CRT
--------------------------------------
Утилита CRT поддерживает два следующих типа устройств отображения информации:
Синхронные терминалы
Синхронные устройства (такие как IBM 3270) передают и получа-
ют данные поэкранно. Они также известны как устройства, работаю-
щие в блочном режиме. Вследствие этого синхронные терминалы не
нуждаются в средствах посимвольной обработки, рассматриваемых в
следующем разделе.
Асинхронные терминалы
-- 88 --
Асинхронные устройства (такие как DEC VT100) передают и полу-
чают данные посимвольно.
Асинхронные терминалы должны быть в состоянии выполнять сле-
дующие задачи:
* передавать каждый введенный символ или каждое введенное поле
* использовать набор символов, "родной" для данной операцион-
ной системы (ASCII или EBCDIC)
* перемещать курсор на одну позицию влево без стирания символа
* перемещать курсор на одну позицию вправо без стирания символа
* позиционировать курсор в нужную строку и столбец
* обрабатывать данные в темпе со скоростью их получения в бо-
дах (или иметь протокол управления потоком типа X-ON/X-OFF)
* очищать весь экран полностью с установкой курсора в левом
верхнем углу
Характеристики терминала должны устанавливаться так, чтобы:
* если характеристика установлена, устройство отображало бы
входные данные с использованием этой характеристики до тех
пор, пока характеристика не будет переустановлена или сброшена
* установка или сброс характеристики не изменяли положение курсора
* установка или сброс характеристики не отражались на содер-
жимом порции выводимых на экран данных
Значения характеристик по умолчанию
-----------------------------------
Каждый дистрибутив СУБД ORACLE для данной операционной среды
включает в себя соответствующие среде значения характеристик тер-
минала по умолчанию. Эти значения, обычно содержащиеся в файле
DEFAULT.CRT, определяют функции клавиатуры терминала, используе-
мые операционной средой.
Например, на дистрибутивной ленте для среды IBM VM/SP содер-
жимое файла DEFAULT.CRT совпадает с содержимым файла IBM3270.CRT,
а на дистрибутивной ленте для среды DEC VMS содержимое файла
DEFAULT.CRT совпадает с содержимым файла VT100.CRT.
В большинстве программ ORACLE предполагается использование
значений характеристик по умолчанию. Если Вы хотите использовать
другие значения, отличные от значений по умолчанию, при запуске
программ Вам придется указывать тип терминала способом, описанным
в программной документации.
Базовые таблицы, используемые утилитой CRT
------------------------------------------
Администратор БД ORACLE, имеющий имя SYSTEM, является вла-
дельцем нескольких таблиц базы, используемых утилитой CRT. Если в
использовании утилиты CRT возникает необходимость, эти таблицы
должны быть загружены администратором. Здесь они будут кратко
охарактеризованы, подробнее же мы с ними познакомимся в последую-
щих разделах.
CRT Таблица, описывающая несколько аппаратных харак-
теристик терминалов.
CRTBOX Таблица, описывающая графические символы, исполь-
зуемые терминалом для формирования рамок на экране.
CRT_PRODUCTS Таблица, содержащая коды программных продуктов,
использующих определения CRT.
-- 89 --
CRT_TYPE Таблица, содержащая коды устройств отображения
информации и тип устройств (синхронный и асинхронный).
ESC Таблица, предназначенная для генерации определе-
ний характеристик терминалов в следующем формате:
- код программного продукта,
- код терминала,
- клавиша терминала,
- программная функция ORACLE.
Это одна из основных таблиц утилиты CRT.
FUNCTIONS Таблица, содержащая коды экранных функций про-
граммных продуктов.
GOTO_LC Таблица, переводящая позицию в формате "строка-столбец" в
координаты курсора или последние в координатные коды для
определенных устройств отображения информации, для которых
координатные коды не поддаются вычислению.
Таблицы CRT обычно создаются на последнем шаге инсталляции
СУРБД ORACLE. Во многих операционных системах файл с именем
CRTINS.SQL используется для входа в систему под именем SYSTEM,
создания и загрузки таблиц. Подробно об инсталляции указанных
таблиц см. в руководстве "Installation and User's Guide" для Ва-
шей операционной системы.
Обратите внимание на то, что файл CRTINS предоставляет доступ
таблицам CRT только пользователю с именем SYSTEM. Если доступ к
таблицам CRT потребуется другим пользователям БД ORACLE (напри-
мер, для вставки или корректировки строк и генерации настраивае-
мых определений терминалов), право такого доступа может быть пре-
доставлено только пользователем SYSTEM и в явной форме.
Соглашения по обозначениям
В последующих разделах при рассмотрении отдельных команд мы
будем пользоваться следующими обозначениями:
Запись Значение
------------------------
\nnn восьмиричное число
\e символ начала управляющей последовательности (ESC)
\x координата строки
\y координата столбца
\t координата верхней строки
\b координата нижней строки
Таблица CRT
Каждая строка таблицы SYSTEM.CRT описывает характеристики
терминального устройства определенного типа. Элементы строки опи-
сывают порядок использования полноэкранными продуктами таких ха-
рактеристик терминала, как выделение цветом или яркостью и инвер-
сия изображения.
Информация, включаемая в эту таблицу, обычно выбирается из
руководства программиста или документации, описывающей принятые
для терминала esc-последовательности.
Примечание: Таблица SYSTEM.CRT независима от продуктов
Oracle. Другими словами, в ней нет столбца, связанного каким-либо
-- 90 --
образом с продуктом, поэтому характеристики имеют общий смысл для
всех терминальных определений.
Перейдем к рассмотрению столбцов таблицы. Предполагается, что
ни одна из введенных команд и ни одна из введенных esc-последова-
тельностей не изменяют текущего положения курсора.
NAME Наименование типа устройства, трактуемое в качестве имени исходного
узла в имени CRT-файла. Это наименование должно соответствовать
требованиям, предъявляемым к именам файлов в Вашей операционной
системе.
TYPE Код из таблицы CRT_TYPE, обозначающий тип устройства:
CHAR = асинхронные устройства
BLOCK = синхронные устройства, кроме типа 3270
3270 = синхронные устройства типа 3270
OFFSET Код, используемый при получении координат курсора, обычно числовое
значение, добавляемое к номе ру строки или столбца с целью
преобразования последнего в код символа. Это значение обычно равно
31 (в десятичной системе) или \037. Нулевое зна- чение говорит о
том, что координаты курсора будут представлены строкой символов.
BASE Номер первой строки терминала, обычно 1 или 0.
LC_TABLE Имя, присвоенное терминалу в таблице GOTO_LC. Ес-
ли в таблице GOTO_LC соответствующая строка от-
сутствует, значение столбца не будет определено.
LINES Количество строк на экране терминала.
COLUMNS Количество символов в каждой строке терминала.
MSGL Номер строки сообщений.
MODL Номер строки состояния.
CLEARSCREEN Команда, используемая для очистки экрана термина-
ла при нахождении курсора в левом верхнем углу экрана.
BACKSPACE Команда, используемая для перемещения курсора на одну позицию
влево. Значением должен быть управляющий символ возврата без
удаления. Для большинства асинхронных устройств - \008.
FORESPACE Команда, используемая для перемещения курсора на одну позицию
вправо. Значением должен быть управ- ляющий символ продвижения
вперед без удаления. Пробел не допускается.
GOTO_LC Команда, используемая для перемещения курсора в указанную в
формате "строка/столбец" позицию. Управляющая последовательность
"\y" используется для задания координаты строки,
"\x" - для указания координаты столбца.
(Последовательности "\y" и "\x" могут использоваться только в этом
поле; в других полях их появление не имеет смысла.)
Так, например, если команда читается как:
"esc", точка с запятой, координата строки, запя-
тая, координата столбца, "H",
записывается она следующим образом:
\e;\y,\xH
CLEARLINE Команда, используемая для очистки всей текущей строки,
независимо от того, в какой позиции строки находится курсор.
-- 91 --
TSET Команда, предназначенная для инициализации терминала перед
использованием. Является первой из команд, посылаемых утилитами
СУБД, использующими характеристики CRT. Так, например, утилита
SQL*Forms может изменять установочные характеристики терминала (и
восстанавливать их значения командой TRSET).
TRSET Команда, предназначенная для восстановления характеристик
терминала после использования. Является последней командой,
посылаемой утилитами СУБД, использующими характеристики CRT. Так,
например, утилита SQL*Forms с ее помощью восстанавливает
первоначальные значения установочных характеристик терминала
(измененные командой TSET).
ATT1 Команда, включающая атрибут изображения 1 (обычно инверсию
изображения). Используется утилитой SQL* Forms при работе с полями,
доступными для ввода. Утилитой SQL*Calc не используется.
ATT2 Команда, включающая атрибут изображения 2 (обычно подчеркивание).
Используется утилитой SQL*Forms при работе со значениями,
отображаемыми на экране подсказки. Утилитой SQL*Calc не
используется.
ATT1_2 Команда, включающая атрибуты изображения 1 и 2. Используется
утилитой SQL*Forms для строки сообщений.
Утилитой SQL*Calc не используется.
ATTOFF Esc - последовательность, придающая изображению на экране вид, как
после очистки экрана.
WINDOW Команда, создающая из подмножества строк на экране область просмот
ра (скроллинга). Координаты верхней и нижней строк области обозна
чаются последовательностями "\t" и "\b". (Последовательности "\t"
и "\b" могут использоваться только в этом поле; в других полях их
появление не имеет смысла.) Так, например, если команда читается
как: "esc", знак переноса, номер верхней строки, запятая, номер
нижней строки, записывается она следующим образом: \e-\t,\b
SCRUP Команда прокрутки (перемещения) изображения в окне экрана на одну
строку вверх.
SCRDN Команда прокрутки (перемещения) изображения в окне экрана на одну
строку вниз.
GRAPHON Команда, заставляющая устройство отображения информации
интерпретировать символьные данные во вводном потоке как
графические. Если устройство не обрабатывает графические
изображения, это поле содержит пустое значение.
GRAPHOFF Команда, заставляющая устройство отображения информации
интерпретировать графические данные во вводном потоке как
символьные. Если устройство не обрабатывает графические
изображения, это поле содержит пустое значение.
PROTON Команда, включающая защиту экрана.
PROTOFF Команда, выключающая защиту экрана.
-- 92 --
CLEAREOL Команда, очищающая часть строки от текущей пози-
ции курсора и до конца строки.
CURSORUP Команда перемещения курсора на одну позицию вверх.
CURSORDOWN Команда перемещения курсора на одну позицию вниз.
TOP2X Команда, имеющая отношение к текущей строке и увеличивающая размер
символов вдвое против нормы, как по горизонтали, так и по
вертикали. По этой команде символы в изображении приобретают
удвоенную ширину и вытягиваются вверх на половину удвоенной высоты.
Команда TOP2X должна использоваться вместе с командой BOTTOM2X.
BOTTOM2X Команда, имеющая отношение к текущей строке и увеличивающая
размер символов вдвое против нормы, как по горизонтали, так и по
вертикали. По этой команде символы в изображении приобретают
удвоенную ширину и вытягиваются вниз на половину удвоенной
высоты. Команда BOTTOM2X должна использоваться вместе с
командой TOP2X.
ATT3 Команда, включающая дополнительную характеристику изображения,
например, полужирный шрифт и выделе- ние яркостью или цветом.
Используется утилитой SQL*Forms для защищенных полей. Утилитой
SQL*Calc не используется.
ATT1_3 Команда, включающая дополнительную характеристику изображения,
например, полужирный шрифт и выделение яркостью или цветом.
Используется утилитой SQL*Forms для полей, не прошедших проверку.
Утилитой SQL*Calc не используется.
ATT2_3 Команда, включающая дополнительную характеристику изображения,
например, полужирный шрифт и выделение яркостью или цветом.
Используется утилитой SQL*Forms для полей текущего блока во время
построения формы. Утилитой SQL*Calc не используется.
ATT1_2_3 Команда, включающая дополнительную характеристику изображения,
например, полужирный шрифт и выделение яркостью или цветом.
Используется утилитой SQL*Forms во время построения формы при
выборе элементов формы клавишей . Утилитой SQL*Calc не
используется.
ATT_BOLD Команда, включающая полужирный шрифт или выделение элемента
яркостью (цветом). Используется утилитами SQL*Calc и SQL*Menu,
утилитой SQL*Forms не используется.
ATT_FLASH Управляющая последовательность, включающая мерцаие изображения.
Используется утилитой SQL*Calc, утилитой SQL*Forms не используется.
ATT_REVRS Управляющая последовательность, включающая инверсию изображения.
Используется утилитой SQL*Calc, утилитой SQL*Forms не используется.
ATT_UNDER Управляющая последовательность, включающая подчеркивание.
Используется утилитой SQL*Calc, утилитой SQL*Forms не
используется.
К порядку задания значений полей атрибутов (таких как ATT1
или ATT2_3) предъявляются следующие требования:
1. Перед посылкой на терминал значения любого поля, имя кото-
-- 93 --
рого начинается с ATT... (за исключением ATTOFF), посыла-
ется esc-последовательность ATTOFF. Таким образом, при
посылке управляющей последовательности, задающей атрибуты
терминала, вводятся только те символы, которые требуются
для задания самого атрибута, при условии, что все атрибуты
уже предварительно были установлены. (Выключать атрибуты
не обязательно, от Вас требуется только включение тех ат-
рибутов, которые Вас интересуют.)
2. Две и более последовательности задания атрибутов "инвер-
сии", "мерцания", "подчеркивания" и "полужирного шрифта"
могут посылаться на терминал вместе, непосредственно после
esc-последовательности ATTOFF. Между перечисленными атри-
бутами нет никаких отношений старшинства и, более того,
вообще никаких взаимосвязей. Каждая установка типа ATTx
фактически используется для включения одной из характерис-
тик изображения, без какой-либо внутренней связи с другими
характеристиками.
Так, например, команда ATT2_3 не является комбинацией из
команд ATT2 и ATT3. Каждый продукт ORACLE, работающий с
характеристиками CRT, использует для задания атрибутов
свои управляющие последовательности. Утилита SQL*Forms ис-
пользует только команды с именами, заканчивающимися цифрой
(например, ATT_1), в то время как утилиты SQL*Calc и
SQL*Menu используют только команды с именами без цифр
(например, ATT_BOLD).
Примечание: В данном руководстве изложен тот порядок задания
атрибутов, которого утилиты ORACLE придерживаются в настоящее
время, однако со временем, вероятно, этот порядок изменится. До-
полнительные вопросы адресуйте службе сопровождения продуктов
корпорации Oracle.
Таблица CRTBOX
---------------
Каждая строка этой таблицы описывает один из поддерживаемых
типов терминала. В столбцах описываются символы, используемые
данным терминалом для отображения определенного графического элемента.
Все столбцы определены как односимвольные, за исключением
столбца CRTNAME. Перейдем к их рассмотрению:
CRTNAME Имя терминального устройства, представленного в таблице CRT.
CMODE Признак графического режима. Если содержит значение "Y" (Да),
утилита SQL*Forms использует нижеприведенные символы для
вывода на экран или в файл.
Для вывода на экран устройства отображения информации:
BOX_BV Вертикальная линия прямоугольной рамки.
BOX_BH Горизонтальная линия прямоугольной рамки.
BOX_CUL Левый верхний угол прямоугольной рамки.
BOX_CUR Правый верхний угол прямоугольной рамки.
BOX_CBL Левый нижний угол прямоугольной рамки.
BOX_CBR Правый нижний угол прямоугольной рамки.
BOX_TL Левостороннее Т (полуперекрестье).
BOX_TR Правостороннее Т (полуперекрестье).
-- 94 --
BOX_TU Вертикально-стоящее полуперекрестье.
BOX_TB Инвертированное полуперекрестье (перевернутое Т).
BOX_X Перекрестье прямоугольной рамки.
Для вывода в файл, предназначенный для печати:
PRT_BV Вертикальная линия прямоугольной рамки.
PRT_BH Горизонтальная линия прямоугольной рамки.
PRT_CUL Левый верхний угол прямоугольной рамки.
PRT_CUR Правый верхний угол прямоугольной рамки.
PRT_CBL Левый нижний угол прямоугольной рамки.
PRT_CBR Правый нижний угол прямоугольной рамки.
PRT_TL Левостороннее Т (полуперекрестье).
PRT_TR Правостороннее Т (полуперекрестье).
PRT_TU Вертикально-стоящее полуперекрестье.
PRT_TB Инвертированное полуперекрестье (перевернутое Т).
PRT_X Перекрестье прямоугольной рамки.
Таблица CRT_PRODUCTS
В этой таблице содержатся коды программных продуктов, исполь-
зующих определения CRT. Столбцы таблицы:
PROD_CODE Код продукта (до 6 символов). Используется в таблицах ESC и
FUNCTIONS.
PROD_NAME Наименование продукта, использующего определения CRT. Таблица
содержит строки, описывающие утилиты SQL*Forms, SQL*Calc,
SQL*Menu и SQL*QMX. Несмотря на то, что продукт Easy*SQL тоже
обращается к утилите CRT, он не использует ее для определения
функций клавиатуры и этим объясняется отсутствие строки об
этом продукте в таблице CRT_PRODUCTS.
Таблица CRT_TYPE
В этой таблице описывается тип терминального устройства (синхронный,
асинхронный). Необходимость в корректировке содержимого этой таблицы обычно
не возникает; она используется только для контроля правильности данных,
содержащихся в таблице CRT. Столбцы таблицы:
NUM Целочисленный код, принимающий следующие значения:
1 = асинхронные устройства
2 = синхронные устройства, кроме типа 3270
3 = синхронные устройства типа 3270
TYPE Код, используемый для идентификации типа (режима работы)
устройства.
DESCRIPTION Текстовое описание типа устройства.
Таблица ESC
В этой таблице на каждый терминал отводится несколько строк,
в каждой из которых устанавливается соответствие между одним из
продуктов ORACLE, с одной стороны, и кодом терминала, клавишей и
программной функцией, с другой. Столбцы таблицы:
-- 95 --
PROD_CODE Код, присвоенный продукту ORACLE, использующему определения
CRT (соответствует коду, указанному в таблице CRT_PRODUCTS).
NAME Код терминала, соответствующий коду, указанному в таблице CRT.
FUNC Код функции терминала, соответствующий коду, указанному в таблице
FUNCTIONS.
ESCSEQ Последовательность символов, генерируемая терминалом при нажатии
указанной функциональной клавиши. Эта последовательность имеет вид
"\nnn", где nnn - восьмиричное число из трех цифр. Чтобы избежать
путаницы с обычной информационной записью, эта последовательность
должна начинаться с символа, не генерируемого ни одной из клавиш.
Следует заметить, что символы должны иметь представление,
отображаемое на экране, но не на печатающем устройстве. Так,
например, на терминале VT100 символ "control-Z" представлен
последовательностью "\032", а символ "escape" - последовательностью
"\e". Начав последовательность символом "*", Вы можете сделать ее
нечувствительной к регистру клавиатуры.
COMMENTS Описание функциональной клавиши, отображаемое в экране помощи.
Таблица FUNCTIONS
Эта таблица содержит перечень полноэкранных продуктов ORACLE,
таких как SQL*Forms и SQL*Menu, в сочетании с экранными функция-
ми, необходимыми для их работы.
Примечание: Изменения в этой таблице производить не следует,
иначе поведение указанных продуктов станет непредсказуемым.
Столбцы таблицы:
PROD_CODE Код из 3 символов, соответствующий полноэкранному
программному продукту, использующему характерис-
тики CRT. Этот код должен корреспондировать с ко-
дом в таблице CRT_PRODUCTS.
FUNCN Номер, присвоенный комбинации "функция-продукт".
FUNC Код функции (2 символа). Этот же код используется в таблице ESC.
FNAME Описание функции, например: "перемещение курсора вправо".
Перечень кодов функций с их описанием для продуктов SQL*Calc,
SQL*Forms и SQL*Menu см. в Приложении F.
Таблица GOTO_LC
Отдельные терминалы используют таблицу GOTO_LC для перевода
адресов строки и столбца в координаты курсора. Не всем терминалам
приходится обращаться к этой таблице - только тем, у которых ад-
реса строк и столбцов не образуют непрерывно возрастающую число-
вую последовательность (и поэтому не могут быть вычислены как
сумма номера строки или столбца, базы и смещения).
Если не поддается вычислению координата строки, в таблицу
GOTO_LC следует включить записи, переводящие номера строк в их
координаты. Если не поддается вычислению координата столбца, мож-
но поступить аналогичным образом и включить в таблицу записи, пе-
реводящие номера столбцов в их координаты. Если неизвестна ни та,
ни другая координата, таблица GOTO_LC должна содержать сведения,
-- 96 --
помогающие их определить. За более подробной информацией обрати-
тесь к разделу "Описание координат курсора".
Столбцы таблицы:
NAME Наименование терминала, соответствующее значению
поля NAME в таблице CRT.
TYPE Тип координат, описываемых в данной записи. Допу-
стимые значения:
L = координата строки
C = координата столбца
VALUE Номер строки или столбца, координата которого вы-
числяется с помощью данной записи.
ESCSEQ Последовательность символов, выступающая коорди-
натой курсора по указанной строке или столбцу.
Создание новых определений терминальных характеристик
-------------------------------------------------------------
Создание (добавление) новых определений терминальных характе-
ристик производится одним из следующих способов:
* заполняя необходимой информацией соответствующую экранную форму CRT
* вставляя строки в таблицы CRT с помощью утилиты SQL*Plus.
Использование формы CRT
Создание новых определений с помощью утилиты SQL*Forms и су-
ществующего CRT-файла включает в себя следующие шаги:
1. Если файл CRT.FRM существует, введите команду:
RUNFORM CRT
Если соответствующий файл еще не был создан, создайте его командой:
IAG CRT -TO
или сгенерируйте его с помощью утилиты SQL*Forms. Затем,
используя команду RUNFORM, войдите в форму CRT. Форма CRT
состоит из трех блоков, один из которых размещается на
первой странице, остальные - на второй, как показано на
Рисунках 8-1 и 8-2.
2. Заполните пустые поля в форме CRT описаниями атрибутов
терминала и клавиш, реализующих эти атрибуты.
3. Сохраните введенные записи в базе, выйдите из формы и сге-
нерируйте CRT-файл, запустив программу CRT. Синтаксис вы-
зова программы:
CRT имя_файла_CRT [имя_пользователя/пароль] [-d?]
Имя файла в командной строке должно совпадать с именем,
указанным Вами на первой странице формы CRT.
За более подробной информацией следует обратиться к разде-
лу "Запуск программы CRT".
Рисунок 8-1 Первая страница формы CRT
Ъ---------------------------------------------------------------Дї
і і
і Crt Name: ±±±±±±±±± Type: CHAR±±±±±±±±± і
і і
іColumns: 80 Lines: 24 Mode Line: 24 Message Line: 24 Base: 1і
і і
іTerminal Setup: ±±±±±±±±± Term Reset: ±±±±±±±±±±±±± і
і Graphics On: ±±±±±±±±± Graphics Off: ±±±±±±±±±±±±± і
-- 97 --
і Protect On: ±±±±±±±±± Protect Off: ±±±±±±±±±±±±± і
і 2X Top: ±±±±±±±±± 2X Bottom: ±±±±±±±±±±±±± і
і і
іClearscreen: ±±±±±±± Clear Line: ±±±±±±±± Clear to EOL: ±±±±±±і
іCreate Window:±±±±±± Scroll Up: ±±±±±±±± Scroll Down: ±±±±±±і
і C-L Offset: ±± Goto C-L: ±±±±±±±± C-L Map: ±±±±±±і
і і
іCursor Left: \10±±±± Right: ±±±±±±± Up: ±±±±±±± Down: ±±±±±±і
і і
іVideo Bold: ±±±±±±±± Flash: ±±±±±±± Revrs: ±±±±±±± Under: ±±±±±±і
іAttribs Off:±±±±±±±± 1: ±±±±±±± 2: ±±±±±±± 3: ±±±±±±і
і 1+2+3: ±±±±±±±± 1+2: ±±±±±±± 2+3: ±±±±±±± 1+3: ±±±±±±і
і і
і ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±і
А---------------------------------------------------------------ДЩ
Рисунок 8-2 Вторая страница формы CRT
Ъ---------------------------------------------------------------Дї
і Graphics (Y/N): ± Screen Printer і
і Vertical line: ± ± і
і Horizontal line: ± ± і
і Crt Name Upper left corner: ± ± і
і ±±±±±±±±±±±±± Upper right corner: ± ± і
і Lower left corner: ± ± і
і Lower right corner: ± ± і
і Left-side T: ± ± і
і Right-side T: ± ± і
і Upright T: ± ± і
і Inverted T: ± ± і
і Cross (+): ± ± і
і і
і Prod Fn і
і Code Cd Function Description Escape Sequence Comments і
і ±±±± ±± ±±±±±±±±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±± ±±±±±±±±± і
і ±±±± ±± ±±±±±±±±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±± ±±±±±±±±± і
і ±±±± ±± ±±±±±±±±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±± ±±±±±±±±± і
і і
і ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± і
А---------------------------------------------------------------ДЩ
Использование утилиты SQL*Plus
Создание новых определений с помощью утилиты SQL*Plus включа-
ет в себя следующие шаги:
1. Получение доступа к совокупности таблиц CRT, принадлежащей
пользователю с именем SYSTEM.
2. Вставка в таблицу CRT строки, описывающей общие характе-
ристики устройства.
3. Вставка в таблицу ESC строк, устанавливающих соответствие
между клавиатурой терминала и программными функциями про-
дуктов ORACLE.
4. Вставка строк в таблицу GOTO_LC, если команда позициониро-
вания курсора устройства пользуется кодами координат, не
поддающимися вычислению.
5. Запуск программы CRT для создания CRT-файла, описывающего
характеристики устройства.
Описание координат курсора
-- 98 --
Каждую позицию, находящуюся на пересечении некоторой строки и
некоторого столбца, можно описать строкой символов или одним сим-
волом, двоичный код которого равен сумме значения координат и не-
которой константы. Если координаты курсора не могут быть выражены
в виде суммы номера строки (столбца) и константы, для преобразо-
вания номеров строк и столбцов в соответствующие координаты сле-
дует воспользоваться данными таблицы GOTO_LC.
Понятие "координата курсора" в таблице GOTO_LC относится к
числу, которое необходимо сообщить устройству в команде позицио-
нирования курсора в указанную позицию строки/столбца. Это число
может иметь как вид строки символов в кодах ASCII, так и двоичную
форму (с размещением в одном байте), и его равенство собственно
номеру строки (столбца) или даже сумме этого номера и некоторой
константы совсем не обязательно.
Символы '\x' и '\y' в esc-последовательности "goto" (перейти)
и символы '\t' и '\b' в esc-последовательности "scrolling
region" (область просмотра) заменяются одним или несколькими сим-
волами, описывающими позицию строки/столбца. Описание позиции
строки/столбца подчиняется следующим правилам:
1. Если базовое значение равно 0, строки и столбцы нумеруют-
ся, начиная с 0, если базовое значение равно 1, нумерация
строк и столбцов начинается с 1. Исключение составляет
случай, когда адресная таблица указана; тогда нумерация
всегда будет начинаться с 1. Базовые значения, отличные от
0 и 1, не допускаются.
2. Если адресная таблица определена, обратитесь к той ее за-
писи, которая соответствует позиции строки (столбца). По-
зиции строк и столбцов в этом случае всегда нумеруются от-
носительно 1 (номер 1 имеют верхняя строка и первый стол-
бец), невзирая на значение поля BASE в таблице CRT. Табли-
цы адресов строк и столбцов должны иметь точно такой же
размер, как и размер описываемого ими экрана. Следует так-
же заметить, что адресная таблица является единственным
средством получения адресов строк и столбцов, координаты
которых не поддаются формальному описанию.
3. Если значение смещения определено, строка символов, описы-
вающая позицию строки (столбца), состоит из единственного
символа, двоичный код которого представляет собой сумму
номера строки (столбца) и значения смещения. Так, напри-
мер, если базовое значение равно 0, символ, описывающий
верхнюю строку или самый левый столбец, имеет двоичный
код, совпадающий со значением смещения. Значение смещения
не может быть отрицательным. Кроме того, если базовое зна-
чение равно 0, значение смещения должно отличаться от 0.
4. Если ни адресная таблица, ни значение смещения не опреде-
лены, описывающая позицию последовательность символов име-
ет десятичное представление. Так, например, верхняя строка
описывается символом '0', если базовое значение равно 0, и
символом '1', если базовое значение равно 1.
Переопределение существующих характеристик терминала
-------------------------------------------------------------
-- 99 --
Переопределить характеристику терминала можно одним из следу-
ющих двух способов:
* используя утилиту SQL*Forms для внесения изменений в функ-
ции клавиатуры и программных продуктов (в форме CRT)
* используя утилиту SQL*Plus для корректировки тех же записей
в таблице ESC.
Запуск программы CRT
--------------------
После внесения изменений, касающихся определения терминальных
характеристик, в таблицы БД запустите программу CRT, которая сге-
нерирует новый CRT-файл для терминала. Синтаксис вызова программы:
CRT имя_файла_CRT [имя_пользователя/пароль] [-d?]
Вы должны ввести имя пользователя и пароль, открывающие дос-
туп ко всем таблицам CRT. Имя CRT-файла, указанное в командной
строке, должно совпадать с именем, содержащимся в таблицах CRT,
ESC и CRTBOX. Если параметр d не используется, выходной файл по-
лучает имя, указанное в командной строке, и расширение .CRT; в
случае использования параметра d будет создан еще один файл с
именем DEFAULT.CRT.
Информацию о месте хранения вновь созданного CRT-файла см. в
руководстве "ORACLE Installation and User's Guide" для Вашей опе-
рационной системы.
Инсталляция/инициализация утилиты CRT (информация для адми-
нистратора БД)
-------------------------------------------------------------
В отношении утилиты CRT и определений терминальных характе-
ристик администратор БД несет ответственность за:
* запуск файла CRTINS, создающего и загружающего таблицы CRT в БД
(инструкции см. в руководстве "ORACLE Installation and User's Guide")
* выбор терминала, характеристики которого будут приняты в
качестве характеристик по умолчанию (осуществляется в виде
ответа на вопрос, появляющийся в конце выполнения файла
CRTINS, или путем переименования соответствующего CRT-файла
в файл DEFAULT.CRT)
* выдачу прикладным разработчикам, желающим внести изменения
в определения терминальных характеристик, разрешения на
доступ к совокупности таблиц CRT
* обеспечение пользователей информацией о функциях клавиш при
работе с прикладными программами, использующими БД ORACLE
-- 100 --
ЧАСТЬ IV ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ A СООБЩЕНИЯ ОБ ОШИБКАХ ПРИ ВЫПОЛНЕНИИ ПРОГРАММ
EXPORT/IMPORT
------------------------------------------------------------Д
Настоящее приложение содержит список сообщений об ошибках,
встречающихся во время выполнения программ Export/Import. Расс-
матривается предполагаемая причина возникновения каждой ошибки и
предлагаются действия по ее устранению.
В целях облегчения поиска и устранения ошибки в каждое сооб-
щение включаются имена объектов, цифры, количественно характери-
зующие ошибку, и вспомогательный текст. Эти компоненты сообщения
можно обозначить как "name" (имя), "num" (число) и "str" (текст),
соответственно. Так, например, сообщение об ошибке, имеющее фор-
мат:
EXP-00011: does not exist
(EXP-00011: файл с именем "имя.имя" не существует)
может принять конкретную форму:
EXP-00011: SCOTT.ACCTS does not exist
Наряду с сообщениями самих программ Export и Import при их
выполнении могут появляться сообщения, выдаваемые СУРБД ORACLE.
Эти сообщения, именуемые сообщениями об ошибках БД ORACLE, описы-
ваются в руководстве "ORACLE Error Messages and Codes Manual".
Обращение к службе сопровождения продуктов корпорации Oracle
-------------------------------------------------------------
В некоторых сообщениях рекомендуется обратиться с извещением
о случившейся ошибке к службе сопровождения продуктов корпорации
Oracle. При подготовке обращения необходимо иметь у себя под ру-
кой следующую информацию:
1. Аппаратная и операционная среда, номер версии операционной
системы, под управлением которой функционирует БД ORACLE.
2. Номер версии СУРБД ORACLE (обычно V6.0, V5.1 или V5.0).
3. Программные продукты ORACLE (с номерами их версий), в ра-
боте которых встретилась ошибка (например, Import V6.0).
4. Точный код ошибки (коды ошибок, если их несколько) и ее
(их) текст (в порядке появления).
5. Серьезность ошибки в соответствии со следующей кодировкой:
1 = Программой нельзя пользоваться. Ошибка критическим об-
разом отражается на функциях программы.
2 = Программой пользоваться можно, но ее функции сущест-
венно ограничены.
3 = Программой пользоваться можно даже с пострадавшими
функциями. Влияние на остальные функции некритическое.
4 = Проблема устранена пользователем. На функции программы
влияние минимальное.
6. Описание проблемы, включающее все замеченные необычные об-
стоятельства.
Кроме того, желательно сообщить о себе следующее:
* имя
* название компании, где Вы работаете
* пользовательский номер Вашей компании, под которым она за-
регистрирована в службе сопровождения продуктов корпорации
Oracle (если знаете)
* номер телефона
-- 101 --
Сообщения об ошибках программы Export
-------------------------------------
EXP-00000: Export terminated with error
(Утилита Экспорт завершила свою работу с ошибкой)
Причина: Утилита обнаружила ошибку СУРБД ORACLE.
Действие: Обратитесь к описанию ошибки, указанной в сопутствующем сообщении
СУРБД, и выполните соответствую- щее действие.
EXP-00001: data field truncation - column length = ,
buffer size = fetched =
(информационное поле обрезано: длина столбца =
число, размер буфера = число, выбрано байт = число)
Причина: Утилита не может уместить значение столбца в буфере данных.
Действие: Запишите размеры указанных параметров и все сопутствующие
сообщения, сообщите о возникновении внутренней ошибки утилиты.
(Таблица экспортирована частично; утилита переходит к
экспортированию следующей таблицы.)
EXP-00002: error in writing to export file
(ошибка вывода данных в экспорт-файл)
Причина: Утилита не может произвести запись в экспорт-файл,
возможно, из-за аппаратной ошибки. Такое сообщение
обычно сопровождается сообщением об аппаратной
ошибке, полученном от операционной системы.
Действие: Восстановите работоспособность устройства.
EXP-00003: no storage definition found for segment (name,num)
(отсутствует описание параметров хранения сегмента (имя,число))
Причина: Утилита не может найти описание параметров хране-
ния кластера, индекса или таблицы.
Действие: Запишите сопутствующие сообщения и сообщите о воз-
никновении внутренней ошибки утилиты.
EXP-00004: invalid username or password
(неверные имя пользователя или пароль)
Причина: Вы указали неверное значение параметров регистра-
ции (имя_пользователя/пароль).
Действие: Повторите попытку, указав правильное значение.
EXP-00005: all allowable logon attempts failed
(все разрешенные попытки регистрации окончились
неудачей)
Причина: Вы снова попытались зарегистрироваться с неверным
значением параметров регистрации.
Действие: Повторите попытку, указав правильное значение.
-- 102 --
EXP-00006: internal inconsistency error (нарушение внутренней согласованности)
Причина: Повреждение информационной структуры утилиты.
Действие: Запишите сопутствующие сообщения и сообщите о воз-
никновении внутренней ошибки утилиты.
EXP-00007: dictionary shows no columns for
(столбцы для объекта имя.имя в словаре не описаны)
Причина: Попытка утилиты Экспорт получить из словаря БД ин-
формацию о столбцах объекта (таблицы) закончилась
неудачей. Вероятно, таблица была удалена.
Действие: Повторите попытку экспортирования и в случае пов-
торения ошибки сообщите о возникновении внутренней
ошибки утилиты.
EXP-00008: ORACLE error encountered
(возникновение ошибки СУБД ORACLE с номером "число")
Причина: Возникновение ошибки СУБД во время экспортирования.
Действие: Обратитесь к описанию ошибки, указанной в сопутствующем сообщении
СУБД, и выполните соответствующее действие.
EXP-00009: no priviledge to export 's table
(для экспортирования таблицы "имя", принадлежащей
владельцу "имя", у пользователя нет полномочий)
Причина: Вами предпринята попытка экспортирования таблицы,
принадлежащей другому пользователю. Правом экспор-
тировать чужие таблицы обладает только администратор БД.
Действие: Обратитесь за разрешением к администратору.
EXP-00010: is not a valid username (имя пользователя указано неверно)
Причина: Имя пользователя Вами указано неверно.
Действие: Повторите попытку, указав правильное имя.
EXP-00011: does not exist
(таблица с именем "имя.имя" не существует)
Причина: Утилита не может найти указанную таблицу.
Действие: Повторите попытку, указав имя существующей таблицы.
EXP-00012: is not a valid export mode
("число" не является допустимым значением парамет-
ра "режим экспортирования")
Причина: Вами указано недопустимое значение параметра "ре-
жим экспортирования".
Действие: Повторите попытку, указав правильное значение параметра.
EXP-00013: respond with either 'Y', 'N', RETURN or '.' to quit
(для ответа используйте одну из клавиш , , или <.>)
Причина: Недопустимый ответ.
Действие: Ответьте нажатием одной из указанных в сообщении клавиш.
EXP-00014: error on row of table
(ошибка в строке с номером "число", принадлежащей таблице с
указанным именем)
Причина: При выборке строк возникла ошибка СУБД ORACLE.
Действие: Обратитесь к описанию ошибки, указанной в сопутствующем сообщении
СУБД, и выполните соответствующее действие.
-- 103 --
EXP-00015: error on row of table , column ,
datatype
(ошибка в указанном столбце указанного типа, при-
надлежащем указанной строке таблицы)
Причина: Возникновение ошибки СУБД ORACLE при выборке или
записи значения столбца.
Действие: Обратитесь к описанию ошибки, указанной в сопутс-
твующем сообщении СУБД, и выполните соответствующее действие.
EXP-00016: ORACLE error encountered while reading default
auditing options
(при чтении параметров ведения журнала по умолча-
нию возникла ошибка СУБД ORACLE)
Причина: При чтении параметров ведения журнала регистрации
(изменений, удалений и т.д.) возникла ошибка СУБД ORACLE.
Действие: Обратитесь к описанию ошибки, указанной в сопутс-
твующем сообщении СУБД, и выполните соответствующее действие.
EXP-00017: ORACLE error encountered while reading system
auditing options
(при чтении параметров ведения системного журнала
возникла ошибка СУБД ORACLE)
Причина: При чтении параметров ведения системного журнала
(регистрация пользователей, права доступа и т.д.)
возникла ошибка СУБД ORACLE.
Действие: Обратитесь к описанию ошибки, указанной в сопутс-
твующем сообщении СУБД, и выполните соответствующее действие.
EXP-00018: datatype (num) for column , table is not supported
(указанный для значений столбца тип данных не поддерживается)
Причина: Указанный тип данных утилитой не поддерживается.
Действие: Повторите попытку, указав допустимый тип данных
(CHAR, NUMBER, DATE, LONG или RAW).
EXP-00019: failed to process parameters, type 'EXP HELP=Y' for help
(попытка обработать параметры закончилась неуда-
чей, для получения подсказки введите строку 'EXP HELP=Y')
Причина: Ошибка в задании параметров командной строки.
Действие: Просмотрите список допустимых форматов, обратив-
шись за помощью к утилите, и повторите попытку.
EXP-00020: failed to allocate memory of size
(попытка выделить пространство памяти указанного
размера закончилась неудачей)
Причина: Ошибка при выделении пространства памяти.
Действие: Уменьшите размер буфера экспортирования (сократив
тем самым потребность в памяти) или увеличьте раз-
мер динамической памяти, выделяемой утилите.
EXP-00021: can only perform incremental export in Full Database mode
(пошаговое экспортирование выполняется только в режиме полной базы)
Причина: Попытка выполнить пошаговое экспортирование в ре-
жимах пользователя или таблицы.
Действие: Повторите попытку, указав режим полной базы (FULL=Y).
-- 104 --
EXP-00022: must be SYS or SYSTEM to do incremental export
(выполнение пошагового экспортирования разрешено
только пользователю SYS или SYSTEM)
Причина: Для работы в режиме пошагового экспортирования у
Вас нет необходимых полномочий. Пошаговое экспор-
тирование могут производить только пользователи SYS и SYSTEM.
Действие: За разрешением на пошаговое экспортирование обра-
титесь к администратору БД.
EXP-00023: must be a DBA to do Full Database export
(работа в режиме полной базы разрешена только администратору)
Причина: Для работы в режиме полной базы у Вас нет необходимых полномочий.
Экспортирование в этом режиме могут производить только пользователи
SYS и SYSTEM.
Действие: За разрешением на экспортирование в режиме полной
базы обратитесь к администратору БД.
EXP-00024: Export views not installed, please notify your DBA
(подсхемы экспорта не инсталлированы, поставьте в известность
администратора БД)
Причина: Подсхемы (обзоры) утилиты не инсталлированы.
Действие: Сообщите администратору БД о необходимости инстал-
ляции подсхем утилиты.
EXP-00025: dictionary shows no column for constraint
(столбец для указанного ограничения в словаре не описан)
Причина: Попытка утилиты Экспорт получить из словаря БД ин-
формацию об указанном ограничении закончилась неу-
дачей. Вероятно, ограничение подверглось изменению.
Действие: Повторите попытку экспортирования и в случае пов-
торения ошибки сообщите о возникновении внутренней
ошибки утилиты.
EXP-00026: only one parameter (TABLES, OWNER, or FULL) can be specified
(допускается указание только одного параметра из
списка: TABLES, OWNER и FULL)
Причина: Указанные режимы экспортирования противоречат друг другу.
Действие: Повторите попытку, указав только один из параметров.
EXP-00027: failed to calculate ORACLE block size
(размер базового блока не поддается вычислению)
Причина: Утилита не в состоянии определить размер базового блока.
Действие: Доложите о возникновении внутренней ошибки утилиты.
EXP-00028: failed to open for write
(ошибка открытия экспорт-файла с указанным именем для записи)
Причина: Попытка утилиты открыть экспорт-файл для записи закончилась
неудачей. Такое сообщение обычно сопровождается сообщением об
аппаратной ошибке, полученном от операционной системы.
Действие: Восстановите работоспособность устройства.
Сообщения об ошибках и коды ошибок программы Import
-------------------------------------------------------------
-- 105 --
IMP-00000: Import terminated with error
(Утилита Импорт завершила свою работу с ошибкой)
Причина: Утилита обнаружила ошибку СУРБД ORACLE.
Действие: Обратитесь к описанию ошибки, указанной в сопутствующем сообщении
СУРБД, и выполните соответствую- щее действие.
IMP-00001: respond with either 'Y', 'N', RETURN or '.' to quit
(для ответа используйте одну из клавиш , , или <.>)
Причина: Недопустимый ответ.
Действие: Ответьте нажатием одной из указанных в сообщении клавиш.
IMP-00002: failed to open for read
(ошибка открытия экспорт-файла с указанным именем для чтения)
Причина: Попытка утилиты открыть экспорт-файл для чтения
закончилась неудачей. Такое сообщение обычно соп-
ровождается сообщением об аппаратной ошибке, полу-
ченном от операционной системы.
Действие: Восстановите работоспособность устройства.
IMP-00003: ORACLE error encountered
(возникновение ошибки СУБД ORACLE с указанным номером)
Причина: Возникновение ошибки СУБД во время работы утилиты.
Действие: Обратитесь к описанию ошибки, указанной в сопутс-
твующем сообщении СУБД, и выполните соответствующее действие.
IMP-00004: invalid username or password (неверные имя пользователя или пароль)
Причина: Вы указали неверное значение параметров регистра-
ции (имя_пользователя/пароль).
Действие: Повторите попытку, указав правильное значение.
IMP-00005: all allowable logon attempts failed
(все разрешенные попытки регистрации окончились неудачей)
Причина: Вы снова попытались зарегистрироваться с неверным
значением параметров регистрации.
Действие: Повторите попытку, указав правильное значение.
IMP-00006: failed to allocate memory of size
(попытка выделить пространство памяти указанного
размера закончилась неудачей)
Причина: Ошибка при выделении пространства памяти.
Действие: Уменьшите размер буфера импортирования (сократив
тем самым потребность в памяти) или увеличьте раз-
мер динамической памяти, выделяемой утилите.
IMP-00007: must be a DBA to import objects to another user's account
(правом импортирования объектов другому пользова-
телю располагает только администратор БД)
Причина: Вы не обладаете полномочиями производить импорти-
рование объектов в область другого пользователя.
Это право предоставлено только администратору БД.
Действие: Обратитесь к услугам администратора.
IMP-00008: unrecognized statement in the export file:
(нераспознаваемый оператор в составе экспорт-фай-
ла, следует текст оператора)
Причина: Утилита не может распознать оператор в экспорт-
файле. Это может случиться тогда, когда экспорт-
-- 106 --
файл запорчен, или тогда, когда возникает внутрен-
няя ошибка утилиты.
Действие: Если экспорт-файл запорчен, повторите попытку,
указав другой экспорт-файл. В противном случае до-
ложите о возникновении внутренней ошибки импортирования.
IMP-00009: abnormal end of export file (аварийное окончание экспорт-файла)
Причина: Не исключено, что сеанс экспортирования, результа-
том которого явился данный экспорт-файл, завершился аварийно.
Действие: Если так, повторите экспорт и импорт сначала. В
противном случае сообщите об ошибке утилиты Импорт
с приложением экспорт-файла, вызвавшего ошибку.
IMP-00010: not a valid export file, header failed verification
(экспорт-файл указан неверно, ошибка чтения заголовка)
Причина: Либо экспорт-файл не был сгенерирован утилитой Эк-
спорт, либо он запортился.
Действие: Если файл все-таки сгенерирован утилитой Экспорт,
сообщите об ошибке утилиты Импорт с приложением
экспорт-файла, вызвавшего ошибку.
IMP-00011: formatted table data not currently supported
(преобразованные табличные данные не поддерживаются)
Причина: Вами предпринята попытка загрузить содержимое экс-
порт-файла, имеющее вид преобразованной табличной
информации. Утилита поддерживает только те экспорт
-файлы, табличные данные в которых содержатся в двоичном виде.
Действие: Повторите попытку, указав экспорт-файл, содержащий
только двоичные табличные данные.
IMP-00012: invalid export mode (num) in header
(в заголовке экспорт-файла указан неверный режим экспортирования)
Причина: Режим экспортирования, указанный в заголовке экс-
порт-файла, неверен.
Действие: Проверьте, не запорчен ли экспорт-файл. Если нет,
сообщите об ошибке утилиты Импорт с приложением
экспорт-файла, вызвавшего ошибку.
IMP-00013: only a DBA can import a file exported by another DBA
(только администратор имеет право загружать экс-
порт-файл, принадлежащий другому администратору)
Причина: Для загрузки экспорт-файла, созданного администра-
тором БД, у Вас нет необходимых полномочий. Только
лицо, само являющееся администратором БД, имеет на это право.
Действие: Обратитесь к услугам администратора.
IMP-00014: insufficient ORACLE priviledges to do import
(для выполнения процедуры импортирования у пользо-
вателя не хватает полномочий)
Причина: Для выполнения процедуры импортирования у Вас не-
достает полномочий. Для работы с утилитой Вам нуж-
на как минимум привилегия типа CONNECT.
Действие: Попросите администратора выдать Вам необходимые полномочия.
IMP-00015: following statement failed because the object
already exists:
(следующий оператор не выполнен из-за того, что
-- 107 --
объект уже существует, следует текст оператора)
Причина: Попытка утилиты Импорт создать объект закончилась
неудачей, т.к. объект уже существует.
Действие: Если Вы хотите, чтобы утилита игнорировала подоб-
ные ошибки и загружала строки в любом случае, за-
дайте параметр 'IGNORE=Y'.
IMP-00016: required character set conversion (type to
) not supported
(указанное преобразование типов не поддерживается)
Причина: Утилита не работает с экспорт-файлами, формат ко-
торых отличен от символьных форматов, поддерживаемых ею.
Действие: Повторите попытку, указав экспорт-файл, имеющий
формат ASCII или EBCDIC.
IMP-00017: following statement failed with ORACLE error :
(при обработке оператора обнаружена ошибка СУБД
ORACLE, следует текст оператора)
Причина: Попытка утилиты обработать оператор закончилась
неудачей из-за обнаружения ошибки СУБД ORACLE.
Действие: Обратитесь к описанию ошибки, указанной в сопутс-
твующем сообщении СУБД, и выполните соответствующее действие.
IMP-00018: partial import of previous table complete:
rows imported
(предыдущая таблица загружена частично: импортиро-
вано указанное число строк)
Причина: Таблица загружена только частично в связи с обна-
ружением ошибки СУБД ORACLE.
Действие: Обратитесь к описанию ошибки, указанной в сопутс-
твующем сообщении СУБД, и выполните соответствующее действие.
IMP-00019: row rejected due to ORACLE error
(строка отвергнута из-за ошибки СУБД ORACLE, cледует номер ошибки)
Причина: При попытке загрузить строку обнаружена ошибка СУБД ORACLE.
Действие: Обратитесь к описанию ошибки, указанной в сопутс-
твующем сообщении СУБД, и выполните соответствующее действие.
IMP-00020: column (size ) in export file too large for
column buffer (size )
(размер столбца в экспорт-файле превышает размер выделенного буфера)
Причина: Размер буфера столбца слишком мал.
Действие: Сообщите об ошибке утилиты Импорт с приложением
экспорт-файла, вызвавшего ошибку.
IMP-00021: operating system error - error code (dec , hex 0x)
(ошибка операционной системы, следуют десятичный и
шестнадцатиричный коды ошибки)
Причина: Возникновение ошибки операционной системы.
Действие: Обратитесь к описанию ошибки в руководстве по Ва-
шей операционной системе и выполните соответствующее действие.
IMP-00022: failed to process parameters, type 'IMP HELP=Y' for help
(попытка обработать параметры закончилась неудачей,
для получения подсказки введите строку 'IMP HELP=Y')
-- 108 --
Причина: Ошибка в задании параметров командной строки.
Действие: Просмотрите список допустимых форматов, обратив-
шись за помощью к утилите, и повторите попытку.
IMP-00023: Import views not installed, please notify your DBA
(подсхемы импорта не инсталлированы, поставьте в
известность администратора БД)
Причина: Подсхемы (обзоры) утилиты не инсталлированы.
Действие: Сообщите администратору БД о необходимости инстал-
ляции подсхем утилиты.
IMP-00024: full import mode, cannot specify FROMUSER or TABLE parameter
(в режиме загрузки полной базы параметры FROMUSER
и TABLE задавать нельзя)
Причина: Вами указаны параметры, конфликтующие с параметром FULL=Y.
Действие: Повторите попытку без указания параметра FULL=Y.
IMP-00025: for DBA export files, FROMUSER must be specified with TOUSER
(при загрузке экспорт-файла, созданного админист-
ратором, параметр TOUSER указан без параметра FROMUSER)
Причина: При загрузке экспорт-файла, созданного администратором,
Вами указан параметр TOUSER, но не указан параметр FROMUSER.
Действие: Укажите параметр FROMUSER, чтобы утилите стало из-
вестно, кому принадлежат загружаемые объекты.
IMP-00027: failed to roll back partial import of previous table
(попытка отменить неполную загрузку предыдущей
таблицы закончилась неудачно)
Причина: При попытке отмены неполной загрузки таблицы воз-
никла ошибка СУБД ORACLE.
Действие: Обратитесь к описанию ошибки, указанной в сопутс-
твующем сообщении СУБД, и выполните соответствую-
щее действие. Затем войдите в систему и убедитесь
в том, что результаты неполной загрузки отменены.
IMP-00028: partial import of previous table rolled back:
rows rolled back
(результаты неполной загрузки предыдущей таблицы
отменены, следует число отмененных строк)
Причина: При попытке загрузить таблицу возникла ошибка СУБД ORACLE.
Действие: Обратитесь к описанию ошибки, указанной в сопутс-
твующем сообщении СУБД, и выполните соответствую-
щее действие. Затем, если нужно, перезагрузите таблицу.
IMP-00029: cannot qualify table by owner (name.name),
use FROMUSER parameter
(указание имени владельца в имени таблицы не до-
пускается, используйте параметр FROMUSER)
Причина: В имени таблицы Вами указано имя ее владельца, что
не разрешается:
IMP SYSTEM/MANAGER TABLES=(SCOTT.EMP,SCOTT.DEPT)
Действие: Для указания имени владельца таблицы используйте
параметр FROMUSER:
IMP SYSTEM/MANAGER FROMUSER=SCOTT TABLES=(EMP,DEPT)
-- 109 --
ПРИЛОЖЕНИЕ A СООБЩЕНИЯ ОБ ОШИБКАХ ПРИ РАБОТЕ SQL*LOADER
------------------------------------------------------------Д
Настоящее приложение содержит список сообщений об ошибках,
встречающихся во время выполнения программы SQL*Loader. Сообщения
об ошибках SQL*Loader имеют следующую форму:
SQL*Loader-код: текст_сообщения
В целях облегчения поиска и устранения ошибки в каждое сооб-
щение включаются имена объектов, цифры, количественно характери-
зующие ошибку, и вспомогательный текст. Эти компоненты сообщения
можно обозначить как "name" (имя), "num" (число) и "str" (текст),
соответственно. Так, например, сообщение об ошибке, имеющее формат:
SQL*Loader-501: Unable to read control file (name)
(SQL*Loader-501: Утилита не в состоянии прочитать управляющий файл (имя))
может принять конкретную форму:
SQL*Loader-501: Unable to read control file (LOAD5.CTL)
Наряду с сообщениями самой утилиты SQL*Loader в процессе ее
работы могут появляться сообщения, выдаваемые СУРБД ORACLE. Эти
сообщения, именуемые сообщениями об ошибках БД ORACLE, описывают-
ся в руководстве "ORACLE Error Messages and Codes Manual".
Коды 100-199: Ошибки командной строки
-------------------------------------
SQL*Loader-100: Syntax error on command line
(синтаксическая ошибка в командной строке) Возможные причины
этой ошибки: указание позиционного аргумента после ключевых
аргументов, орфографическая ошибка в написании ключевого
слова, несбалансированность круглых скобок или кавычек,
наличие пробела между оператором и знаком равенства, а также
между последним и аргументом. Проверьте синтаксис и ор-
фографию командной строки, а затем повторите попытку.
SQL*Loader-101: Invalid argument for username/password
(неверное значение аргумента "имя_пользователя/пароль")
SQL*Loader-102: Invalid control file on command line
(неверное имя управляющего файла в командной строке)
SQL*Loader-103: Invalid log file on command line
(неверное имя регистрационного файла в командной строке)
SQL*Loader-104: Invalid bad file on command line
(неверное имя файла плохих записей в командной строке)
SQL*Loader-105: Invalid data file on command line
(неверное имя файла данных в командной строке)
SQL*Loader-106: Invalid discard file on command line
(неверное имя файла отсеянных записей в командной строке)
SQL*Loader-107: Invalid maximum number of discards
(ограничение на количество отсеянных записей задано неверно)
SQL*Loader-108: Invalid number of logical records to load
(количество загружаемых записей задано неверно)
-- 110 --
SQL*Loader-109: Invalid number of logical records to skip
(количество пропускаемых записей задано неверно)
SQL*Loader-110: Invalid maximum number of errors
(максимальное количество ошибок задано неверно)
SQL*Loader-111: Invalid number of rows for bind array
(количество записей в связанном массиве задано неверно)
SQL*Loader-112: Invalid maximum bind array size
(максимальный размер связанного массива задан неверно)
SQL*Loader-113: Invalid silent mode option (требуется задание опции "режим")
SQL*Loader-114: Error in OPTIONS statement (ошибка в предложении OPTIONS)
Коды 200-299: Синтаксические ошибки DB2
---------------------------------------
SQL*Loader-200: FORMAT clause should not be present - flat
data files only SQL/DS format not supported here
(фраза FORMAT должна отсутствовать - файлы
данных в формате SQL/DS здесь не поддерживаются)
SQL*Loader-250: Work data sets are not used by SQL*Loader
(рабочие наборы данных утилитой SQL*Loader не используются)
SQL*Loader-251: Sort devices are not used by SQL*Loader
(средства сортировки утилитой SQL*Loader не используются)
SQL*Loader-252: Sort data sets are not used by SQL*Loader
(сортируемые наборы данных утилитой SQL*Loader не используются)
SQL*Loader-253: DB2 partition number has no significance - ignored
(номер раздела DB2 не имеет значения и поэтому игнорируется)
Коды 300-399: Синтаксические ошибки в управляющем файле
-------------------------------------------------------------
SQL*Loader-300: Control file line too long
(строка управляющего файла имеет слишком большую длину)
SQL*Loader-301: Token too long (значение имеет слишком большую длину)
SQL*Loader-302: Non-terminated quoted string constant found
(обнаружена неоконченная строковая константа)
SQL*Loader-350: Syntax error at line
(синтаксическая ошибка в строке с указанным номером)
num - номер строки в управляющем файле, где обнаружена ошибка.
За этим сообщением следует еще одно сообщение, имеющее форму:
Expecting , found
(вместо строки 1 обнаружена строка 2)
где str1 - описание строки, которая в управляющем файле должна
располагаться на месте строки str2. Затем SQL*Loader выводит
на экран строку, нарушившую структуру управляющего файла, в
которой место расположения ошибки отмечается символом '^' или
'*'. Пример:
-- 111 --
SQL*Loader-350: Syntax error at line 28
Expecting column name, found keyword CHAR
col3 ENCLOSED BY '"', CHAR ENCLOSED "'",
^
Коды 400-499: Логические ошибки (при правильном синтаксисе)
-------------------------------------------------------------
SQL*Loader-400: Record format only for data and control in same file
(запись в файле может иметь только информаци-
онный и управляющий формат)
SQL*Loader-401: End field position must be greater than or equal to start
(последняя позиция поля должна иметь номер,
больший или равный номеру его начальной позиции)
SQL*Loader-402: Unable to determine length from column specification
(из спецификации столбца неясна его длина)
SQL*Loader-403: Referenced column not present in table
(столбец с указанным именем отсутствует в таблице)
SQL*Loader-404: Column present more than once in table
(повторение имени столбца внутри одной и той же таблицы)
Коды 500-599: Ошибки при открытии и чтении файлов
-------------------------------------------------------------
SQL*Loader-500: Unable to open control file (name)
(не могу открыть управляющий файл с указанным именем)
SQL*Loader-501: Unable to read control file (name)
(не могу прочитать управляющий файл с указанным именем)
SQL*Loader-502: Unable to open log file for write (name)
(не могу открыть регистрационный файл с ука-
занным именем для записи)
SQL*Loader-503: Unable to open data file (name)
(не могу открыть файл данных с указанным именем)
SQL*Loader-504: Unable to read data file (name)
(не могу прочитать файл данных с указанным именем)
SQL*Loader-505: Actual physical record length greater than
specified maximum
(фактическая длина физической записи превыша-
ет заданный максимум)
Для типа данных VARIABLE в управляющем файле
Вами задан максимальный размер записи, кото-
рый оказался превышен текущей записью.
SQL*Loader-506: Unable to open bad file (name)
(не могу открыть файл плохих записей с указанным именем)
SQL*Loader-507: Unable to open discard file (name)
(не могу открыть файл отсеянных записей с указанным именем)
-- 112 --
Коды 600-699: Ошибки, возникшие в процессе загрузки
-------------------------------------------------------------
SQL*Loader-600: Specified maximum bind size too small for a
single row
(максимальный размер связанного массива меньше размера одной
строки) Увеличьте размер пространства, отводимого под связанный
массив, используя фразу BINDSIZE в командной строке или
предложение OPTIONS в управляющем файле.
SQL*Loader-601: For INSERT option, table must be empty. Error on
(если используется опция INSERT, таблица должна быть пуста)
Если Вам нужно заменить данные, содержащиеся в таблице,
новыми, используйте ключевое слово REPLACE; если Вы хотите
добавить данные в таблицу, используйте слово APPEND.
SQL*Loader-602: Maximum error count exceeded
(превышено максимально-допустимое количество ошибок)
Коды 620-639: Ошибки формата
-------------------------------------------------------------
В эту группу входят ошибки, обнаруженные в данных, формат которых в
управляющем файле описан как свободный (TERMINATED, ENCLOSED). Форматные
ошибки имеют место в тех случаях, когда данные не подходят под описанный формат
их загрузка может привести к нарушению достоверности содержимого базы. В
случае возникновения подобной ошибки попытка загрузить данные признается
неудачной и запись включается в файл плохих записей.
SQL*Loader-620: Initial enclosing character not found
(не обнаружен начальный окаймляющий символ)
SQL*Loader-621: Field in data file exceeds maximum specified length
(размер поля в файле данных превышает макси-
мально-допустимую длину)
SQL*Loader-622: Logical record ended - no terminator character found
(логическая запись закончилась, но признак
(символ) конца не обнаружен)
SQL*Loader-623: Logical record ended - second enclosing
character not present
(логическая запись закончилась, но второй
окаймляющий символ не обнаружен)
SQL*Loader-624: No terminator found after TERMINATED and ENCLOSED field
(после поля, описанного как TERMINATED и
ENCLOSED, символ-ограничитель не обнаружен)
Коды 640-699: Неисправимые ошибки СУБД ORACLE
-------------------------------------------------------------
В эту группу входят ошибки, возникающие при обращении к БД и
делающие невозможной дальнейшую работу утилиты SQL*Loader. В ка-
честве примера можно назвать неправильный вход в систему, обраще-
ние к таблице или к столбцу по неверному имени.
В случае возникновения неисправимой ошибки выводится сообще-
ние, содержащее код ошибки и текст, указывающий, попытка обработ-
-- 113 --
ки какого запроса закончилась неудачей. В сообщении также могут
указываться имена таблицы и столбца, при обработке которых обна-
ружена ошибка.
SQL*Loader-640: Non-recoverable ORACLE error occurred
(возникновение неисправимой ошибки СУБД)
SQL*Loader-641: Error occurred on SQL insert statement for
table . Your use of column is
possibly in error
(Ошибка возникла в SQL-операторе вставки
строки в таблицу с указанным именем. Возмож-
но, ошибка вызвана неправильным использовани-
ем указанного столбца)
SQL*Loader-642: Error occurred while verifying emptiness of table
(ошибка возникла во время проверки указанной
таблицы на отсутствие записей)
SQL*Loader-643: Error occurred while trying to delete from table
(ошибка возникла при попытке удаления записи
из указанной таблицы)
Если Вы используете ключевое слово REPLACE,
перед началом загрузки все содержимое таблицы
будет удалено. В этом случае Вам необходимо
иметь полномочия удаления данных из таблицы.
SQL*Loader-644: Error occurred on an attempt to commit
(ошибка возникла при попытке регистрации изменений в базе)
SQL*Loader-645: Error occurred while querying the count in table
(ошибка возникла при обработке запроса, свя-
занного с подсчетом записей в таблице)
SQL*Loader-646: Error occurred while querying maximum of
(ошибка возникла при обработке запроса, свя-
занного с вычислением максимального значения
по объекту с указанным именем)
Коды 700-799: Фатальные ошибки
------------------------------
SQL*Loader-700: Out of memory while performing essential allocations
(нехватка памяти в процессе распределения ресурсов)
SQL*Loader-701: Out of memory while allocating bind array
(нехватка памяти при выделении связанного массива)
SQL*Loader-702: Internal error - call customer support
(внутренняя ошибка - обратитесь в службу сопровождения)
-- 114 --
ПРИЛОЖЕНИЕ C ЗАМЕЧАНИЯ ПО ИСПОЛЬЗОВАНИЮ ЗАГРУЗЧИКА DB2
------------------------------------------------------------Д
В приложении описываются различия в синтаксисе управляющих
файлов утилит SQL*Loader и DB2. Рассматриваются следующие вопросы:
* дополнительные возможности утилиты SQL*Loader по сравнению
с утилитой DB2
* опция RESUME в DB2
* опции, обеспечивающие совместимость утилит
* возможности, отсутствующие в SQL*Loader
Дополнительные возможности утилиты SQL*Loader по сравнению с
утилитой DB2
-------------------------------------------------------------
Помимо того, что утилита SQL*Loader может пользоваться управ-
ляющим файлом утилиты DB2, она располагает многочисленными воз-
можностями, расширяющими диапазон функций загрузчика DB2, среди них:
* поддержка данных типа DATE
* автоматическая генерация уникальных последовательных ключевых значений
* возможность явного задания длины записи
* загрузка данных из нескольких файлов данных различного типа
* поддержка записей фиксированного формата, переменной длины
и записей, использующих ограничители значений полей
* возможность трактования одной физической записи как нес-
кольких логических
* возможность объединения нескольких физических записей в од-
ну логическую с помощью фраз CONCATENATE, CONTINUEIF NEXT,
CONTINUEIF THIS
* полная расшифровка ошибок в сообщениях
* поддержка файлов плохих записей (DB2 останавливает работу
на первой ошибке)
* управление количеством пропускаемых и загружаемых записей,
а также допустимым количеством ошибок
* поддержка предложения WHEN с фразой AND
* поддержка предложения FIELDS для описания характеристик по-
лей по умолчанию
Опция RESUME в DB2
------------------
При создании управляющего файла можно использовать как син-
таксис опции RESUME утилиты DB2, так и эквивалентные фразы утили-
ты SQL*Loader. Более подробно об этих фразах можно узнать из раз-
дела главы 7 "Загрузка табличных данных в режимах замены и добав-
ления в конец".
Опции DB2 Опции SQL*Loader Результат
---------------------------------------------------------------ДД
RESUME NO INSERT Данные загружаются только
или отсутствие в том случае, если табли-
фразы RESUME ца пуста; в противном
случае выдается сообщение
об ошибке.
RESUME YES APPEND Новые данные добавляются
к существующим в таблице.
RESUME NO REPLACE Новые данные заменяют су-
REPLACE ществующие.
---------------------------------------------------------------ДД
-- 115 --
Синтаксис фразы в DB2 следующий:
Если таблицы, в которые ведется загрузка данных, уже содержат
какую-то информацию, Вы можете поступить со старым содержимым од-
ним из трех способов. Все три способа предполагают использование
фразы RESUME. Аргумент фразы RESUME может быть заключен в круглые скобки.
RESUME { YES і NO [ REPLACE ] }
где:
YES Добавление новых строк к уже существующим в таб-
лице.
NO Таблица перед загрузкой должна быть пустой. В
противном случае будет выдано сообщение об ошибке
и работа утилиты завершится. Это аргумент по
умолчанию.
NO REPLACE Удаление содержимого таблицы перед загрузкой но-
вых данных. Другими словами, новые данные затира-
ют старые. Пользователь, указывающий этот аргу-
мент, должен иметь право (полномочия) удалять
данные из таблицы. Восстановить старое содержимое
таблицы Вы сможете только путем его экспортирова-
ния или другими аналогичными средствами.
При работе с утилитой SQL*Loader одну фразу RESUME Вы можете
использовать для описания режима загрузки во все таблицы сразу,
если укажете ее перед самой первой фразой INTO TABLE. Вы также
можете указывать ее для каждой отдельной таблицы, тогда фраза
RESUME располагается после фразы INTO TABLE. Новая фраза RESUME,
за которой следует имя таблицы, отменяет действие предыдущей фра-
зы; если для данной таблицы фраза RESUME не указана, на эту таб-
лицу будет распространяться действие последней из предшествующих
фраз данного типа.
Опции, обеспечивающие совместимость утилит
-------------------------------------------------------------
Загрузчик DB2 включает в себя отдельные элементы, не исполь-
зуемые утилитой SQL*Loader. DB2 может работать с отсортированными
указателями, созданными с помощью внешних файлов, описание кото-
рых (файлов) включается в оператор загрузки. В целях обеспечения
совместимости с загрузчиком DB2 утилита SQL*Loader анализирует
эти описания, но игнорирует их, если с точки зрения СУБД ORACLE
они не имеют значения. Следующие синтаксические элементы DB2 ути-
лита SQL*Loader разрешает использовать, но игнорирует.
Оператор LOG
Этот оператор поддерживается для обеспечения совместимости с
утилитой DB2. Он анализируется утилитой SQL*Loader, но игнориру-
ется. (Указанная опция никак не влияет на создаваемый утилитой
регистрационный файл.) Загрузчик DB2 использует регистрационный
файл для восстановления при ошибках, поэтому он может отсутство-
вать.
SQL*Loader предполагает автоматический вход в систему, кото-
рый может быть реализован в виде запуска системы из памяти.
[ LOG { YES і NO } ]
-- 116 --
Оператор WORKDDN
Этот оператор поддерживается для обеспечения совместимости с
утилитой DB2. Он анализируется утилитой SQL*Loader, но игнориру-
ется. Загрузчик DB2 использует его для сортировки временного (ра-
бочего) файла.
[ WORKDDN имя_файла ]
Операторы SORTDEVT и SORTNUM
Эти операторы поддерживается для обеспечения совместимости с
утилитой DB2. Они анализируются утилитой SQL*Loader, но игнориру-
ются. Загрузчик DB2 использует их для указания количества и типа
рабочих наборов данных, участвующих в процессе сортировки.
[ SORTDEVT тип_устройства ]
[ SORTNUM n ]
Фразы DISCARD
Если в обработке участвуют несколько файлов, фразы типа
DISCARD (DISCARDDN и DISCARDS) располагаются в управляющем файле
не на своем обычном месте, а после описания файлов данных. Одна-
ко, если используется один, совместимый с DB2, файл, эти фразы
остаются на прежнем месте - между фразами RESUME и RECLEN. Обра-
тите внимание на то, что если используется загрузчик DB2, нулевое
значение параметра DISCARDS означает отсутствие ограничения на
количество отвергаемых записей, то же значение утилитой
SQL*Loader интерпретируется как необходимость прекращения работы
на первой же отвергаемой записи.
Возможности, отсутствующие в SQL*Loader
---------------------------------------
Некоторые аспекты функционирования загрузчика DB2 не дублиру-
ются утилитой SQL*Loader. Так, например, SQL*Loader не производит
загрузку данных ни из файлов в формате SQL/DS, ни из файлов в
формате DB2 UNLOAD. При обнаружении следующих команд загрузчика
DB2 утилита SQL*Loader выдает сообщение об ошибке:
Оператор FORMAT
Оператор DB2 FORMAT в управляющем файле, обрабатываемом ути-
литой SQL*Loader, должен отсутствовать. Загрузчик DB2 использует
этот оператор для задания формата загрузочного файла (DB2 UNLOAD
или SQL/DS), если он отличается от внутреннего формата загрузчи-
ка. Эти форматы утилитой SQL*Loader не поддерживаются. Если ука-
занный оператор присутствует в командном файле, SQL*Loader прек-
ратит работу и выдаст сообщение об ошибке. (Фирма IBM не описала
формат указанных файлов, поэтому SQL*Loader не может их читать.)
FORMAT { UNLOAD і SQL/DS }
Оператор PART
Оператор PART поддерживается для обеспечения совместимости с
утилитой DB2. В СУБД ORACLE отсутствует понятие, соответствующее
понятию "таблицы с подразделами", которое существует в DB2. Ути-
лита SQL*Loader считывает таблицу целиком; при обнаружении ука-
занного оператора будет выдано сообщение о том, что таблицы с
подразделами не поддерживаются, и таблица будет загружена цели-
ком.
[ PART n ]
-- 117 --
Опция SQL/DS
В предложении WHEN опция SQL/DS=имя_таблицы не должна исполь-
зоваться. SQL*Loader не поддерживает внутренний формат SQL/DS,
поэтому при обнаружении указанной опции SQL*Loader прекращает
свою работу и выдает сообщение об ошибке.
Графические строки
Поскольку в СУБД ORACLE строки символов, каждый из которых
занимает два байта, не поддерживаются, использование графических
литер в форме G'**' не допускается.
-- 118 --
ПРИЛОЖЕНИЕ D ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА В SQL*LOADER
------------------------------------------------ДД
Присвоение имен таблицам и столбцам, обрабатываемым с помощью утилиты
SQL*Loader, должно подчиняться общепринятым требованиям. Имя таблицы или
столбца не должно полностью совпадать с одним из зарезервированных слов -
слов, имеющих особое значение для утилиты SQL*Loader и перечисленных на
следующей странице. Если же Вам нужно все-таки использовать зарезервированное
слово в качестве имени таблицы или столбца, его следует заключить в двойные
кавычки.
AND EXTERNAL RECLEN
APPEND FIELDS RECNUM
BADDN FIXED RECORD
BADFILE FLOAT REPLACE
BEGINDATA FORMAT RESUME
BLOCKSIZE GRAPHIC SEQUENCE
BY INDDN SMALLINT
CHAR INFILE SORTDEVT
CONCATENATE INSERT SORTNUM
CONSTANT INTEGER SQL/DS
CONTINUEIF INTO STREAM
COUNT LAST TABLE
DATA LOAD TERMINATED
DATE LOG THIS
DECIMAL MAX UNLOAD
DEFAULTIF NEXT VARCHAR
DISCARDDN NO VARGRAPHIC
DISCARDFILE NULLIF VARIABLE
DISCARDMAX OPTIONALLY WHEN
DISCARDS OPTIONS WHITESPACE
DOUBLE PART WORKDDN
ENCLOSED POSITION YES
-- 119 --
ПРИЛОЖЕНИЕ E СТАНДАРТНЫЕ ОПРЕДЕЛЕНИЯ ХАРАКТЕРИСТИК ТЕРМИНАЛА
------------------------------------------------------------Д
Некоторые наиболее часто используемые типы терминалов, под-
держиваемые корпорацией Oracle:
D200 VI3x0
D410 VK100
D605x VT52
GG VT100
GIGI VT102
IBM3270 VT200
OWL VT220
PC
Наименования перечисленных типов совпадают с именами соот-
ветствующих CRT-файлов. В разных операционных систем состав
CRT-файлов, содержащихся на дистрибутивной ленте, может быть раз-
личным, но при этом в любой системе в этих файлах хранятся среди
прочих и определения характеристик совпадающих (общеупотребимых)
типов терминалов.
-- 120 --
ПРИЛОЖЕНИЕ F ФУНКЦИОНАЛЬНЫЕ КОДЫ КЛАВИАТУРЫ ТЕРМИНАЛА
------------------------------------------------------------Д
В настоящем приложении содержится список функциональных кодов
клавиатуры терминала, используемых утилитами SQL*Forms IAP и IAD,
SQL*Calc и SQL*Menu. Эти коды вместе с их расшифровками хранятся
в таблице SYSTEM.FUNCTIONS.
Коды, используемые утилитой SQL*Forms IAP
-------------------------------------------------------------
BM SELECT BLOCK BY MENU (ВЫБРАТЬ БЛОК В МЕНЮ)
CA CLEAR ALL (ПОЛНАЯ ОЧИСТКА)
CB CLEAR BLOCK (ОЧИСТИТЬ БЛОК)
CF CLEAR FIELD (ОЧИСТИТЬ ПОЛЕ)
CM INSERT/REPLACE (ВСТАВКА/ЗАМЕНА)
CQ COUNT QUERY HITS (ПОДСЧИТАТЬ ЧИСЛО ЗАПИСЕЙ,
УДОВЛЕТВОРЯЮЩИХ ЗАПРОСУ)
CR CREATE RECORD (СОЗДАТЬ ЗАПИСЬ)
CT COMMIT TRANSACTION (ЗАПИСЬ ИЗМЕНЕНИЙ)
D DELETE RECORD (УДАЛИТЬ ЗАПИСЬ)
DB DELETE BACKWARD (СТИРАНИЕ ТЕКСТА ДО КУРСОРА)
DC DELETE CHARACTER (УДАЛИТЬ СИМВОЛ)
DE DISPLAY LAST ERROR (РАСШИФРОВАТЬ ПОСЛЕДНЮЮ ОШИБКУ)
DF DUPLICATE FIELD (СКОПИРОВАТЬ ПОЛЕ)
DK DISPLAY FUNCTION KEYS (ВЫВЕСТИ СПИСОК ФУНКЦИЙ КЛАВИАТУРЫ)
DR DUPLICATE RECORD (СКОПИРОВАТЬ ЗАПИСЬ)
EQ ENTER A QUERY (ВВЕСТИ ЗАПРОС)
H HELP FIELD (ПОДСКАЗКА ДЛЯ ПОЛЯ)
IL ILLEGAL KEY (ЗАПРЕЩЕННЫЙ КЛЮЧ)
K0 USER DEFINED KEY 0 ї
K1 USER DEFINED KEY 1 і
K2 USER DEFINED KEY 2 і
K3 USER DEFINED KEY 3 і
і КЛАВИШИ,
K4 USER DEFINED KEY 4 і
> ОПРЕДЕЛЯЕМЫЕ
K5 USER DEFINED KEY 5 і
і ПОЛЬЗОВАТЕЛЕМ
K6 USER DEFINED KEY 6 і
K7 USER DEFINED KEY 7 і
K8 USER DEFINED KEY 8 і
K9 USER DEFINED KEY 9 Щ
LV LIST FIELD VALUES (СПИСОК ЗНАЧЕНИЙ ПОЛЯ)
MD MOVE CURSOR DOWN (ПЕРЕМЕСТИТЬ КУРСОР ВНИЗ)
ML MOVE CURSOR LEFT (ПЕРЕМЕСТИТЬ КУРСОР ВЛЕВО)
MR MOVE CURSOR RIGHT (ПЕРЕМЕСТИТЬ КУРСОР ВПРАВО)
MU MOVE CURSOR UP (ПЕРЕМЕСТИТЬ КУРСОР ВВЕРХ)
NB NEXT BLOCK (СЛЕДУЮЩИЙ БЛОК)
NF NEXT FIELD (СЛЕДУЮЩЕЕ ПОЛЕ)
NK NEXT PRIMARY KEY FIELD (СЛЕДУЮЩЕЕ ПОЛЕ ПЕРВИЧНОГО КЛЮЧА)
NR NEXT RECORD (СЛЕДУЮЩАЯ ЗАПИСЬ)
NS NEXT RECORD SET (СЛЕДУЮЩИЙ НАБОР ЗАПИСЕЙ)
-- 121 --
P PRINT FUNCTION (ПЕЧАТЬ)
PB PREVIOUS BLOCK (ПРЕДЫДУЩИЙ БЛОК)
PF PREVIOUS FIELD (ПРЕДЫДУЩЕЕ ПОЛЕ)
PR PREVIOUS RECORD (ПРЕДЫДУЩАЯ ЗАПИСЬ)
Q EXECUTE QUERY FUNCTION (ВЫПОЛНИТЬ ЗАПРОС)
R REDISPLAY SCREEN (ВОССТАНОВИТЬ ИЗОБРАЖЕНИЕ)
RR RELEASE RECORD (ОСВОБОДИТЬ ЗАПИСЬ)
SL SCROLL LEFT (ПЕРЕМЕСТИТЬ ИЗОБРАЖЕНИЕ ВЛЕВО)
SR SCROLL RIGHT (ПЕРЕМЕСТИТЬ ИЗОБРАЖЕНИЕ ВПРАВО)
TM TRANSMIT (ПЕРЕДАТЬ ДАННЫЕ)
X EXIT/CANCEL (ВЫХОД/ОТМЕНА)
Коды, используемые утилитой SQL*Forms IAD
-------------------------------------------------------------
A ACCEPT (ПРИНЯТЬ)
BL DRAW BOX/LINE (ЧЕРТИТЬ РАМКУ/ЛИНИЮ)
CF CLEAR FIELD (ОЧИСТИТЬ ПОЛЕ)
CM INSERT/REPLACE (ВСТАВКА/ЗАМЕНА)
CR CREATE FIELD (СОЗДАТЬ ПОЛЕ)
CU CUT (УДАЛИТЬ С ЗАПОМИНАНИЕМ)
D DEFINE (ОПРЕДЕЛИТЬ)
DB DELETE BACKWARD (СТИРАНИЕ ТЕКСТА ДО КУРСОРА)
DC DELETE CHARACTER (УДАЛИТЬ СИМВОЛ)
DK DISPLAY FUNCTION KEYS (ВЫВЕСТИ СПИСОК ФУНКЦИЙ КЛАВИАТУРЫ)
IL ILLEGAL KEY (ЗАПРЕЩЕННЫЙ КЛЮЧ)
MD MOVE CURSOR DOWN (ПЕРЕМЕСТИТЬ КУРСОР ВНИЗ)
ML MOVE CURSOR LEFT (ПЕРЕМЕСТИТЬ КУРСОР ВЛЕВО)
MR MOVE CURSOR RIGHT (ПЕРЕМЕСТИТЬ КУРСОР ВПРАВО)
MU MOVE CURSOR UP (ПЕРЕМЕСТИТЬ КУРСОР ВВЕРХ)
NF NEXT FIELD (СЛЕДУЮЩЕЕ ПОЛЕ)
P PRINT (ПЕЧАТЬ)
PA PASTE (ВСТАВКА РАНЕЕ УДАЛЕННОГО ТЕКСТА)
PF PREVIOUS FIELD (ПРЕДЫДУЩЕЕ ПОЛЕ)
R REDISPLAY SCREEN (ВОССТАНОВИТЬ ИЗОБРАЖЕНИЕ)
RF RESIZE FIELD (ПЕРЕОПРЕДЕЛИТЬ РАЗМЕР ПОЛЯ)
RO RUN-OPTIONS WINDOW (ОКНО ПАРАМЕТРОВ ВЫПОЛНЕНИЯ)
S SELECT (ВЫБРАТЬ)
SB SELECT BLOCK (ВЫБРАТЬ БЛОК)
UN UNDO (ОТМЕНА)
X EXIT/CANCEL (ВЫХОД/ОТМЕНА)
Коды, используемые утилитой SQL*Calc
-------------------------------------------------------------
AD MOVE CURSOR DOWN (ПЕРЕМЕСТИТЬ КУРСОР ВНИЗ)
AL MOVE CURSOR LEFT (ПЕРЕМЕСТИТЬ КУРСОР ВЛЕВО)
AR MOVE CURSOR RIGHT (ПЕРЕМЕСТИТЬ КУРСОР ВПРАВО)
AU MOVE CURSOR UP (ПЕРЕМЕСТИТЬ КУРСОР ВВЕРХ)
BS BACKSPACE (ВОЗВРАТ НА ОДИН СИМВОЛ)
CN ESCAPE (ВЫХОД)
DL DELETE (УДАЛИТЬ)
EN ENTER (ВВЕСТИ)
-- 122 --
F0 "COPIED" ("СКОПИРОВАНО")
F1 HELP (ПОМОЩЬ)
F2 EDIT (РЕДАКТИРОВАТЬ)
F3 NAME (ИМЯ)
F4 ABS (АБСОЛЮТНОЕ ЗНАЧЕНИЕ)
F5 GOTO (ПЕРЕЙТИ)
F6 WINDOW (ОКНО)
F7 QUERY (ЗАПРОС)
F8 TABLE (ТАБЛИЦА)
F9 CALC (ВЫЧИСЛИТЬ)
IC INSERT/REPLACE (ВСТАВКА/ЗАМЕНА)
IL UNDEFINED (НЕОПРЕДЕЛЕННАЯ КЛАВИША)
LF LINEFEED (ПЕРЕВОД СТРОКИ)
ME END (КОНЕЦ)
MH HOME (НАЧАЛО ЭКРАНА)
PD PAGE DOWN (СТРАНИЦА ВНИЗ)
PL PAGE LEFT (СТРАНИЦА ВЛЕВО)
PR PAGE RIGHT (СТРАНИЦА ВПРАВО)
PU PAGE UP (СТРАНИЦА ВВЕРХ)
R REDISPLAY SCREEN (ВОССТАНОВИТЬ ИЗОБРАЖЕНИЕ)
RT RETURN (ВОЗВРАЩЕНИЕ)
RU RUB OUT (DELETE) (СТЕРЕТЬ)
Коды, используемые утилитой SQL*Menu
-------------------------------------------------------------
AM GOTO APPLICATION MENU (ПЕРЕЙТИ НА ПРИКЛАДНОЕ МЕНЮ)
B0 BACKGROUND MENU OPTION # 1 ї
B1 BACKGROUND MENU OPTION # 2 і
B2 BACKGROUND MENU OPTION # 3 і
B3 BACKGROUND MENU OPTION # 4 і
і ОПЦИИ
B4 BACKGROUND MENU OPTION # 5 і
> ФОНОВОГО
B5 BACKGROUND MENU OPTION # 6 і
і МЕНЮ
B6 BACKGROUND MENU OPTION # 7 і
B7 BACKGROUND MENU OPTION # 8 і
B8 BACKGROUND MENU OPTION # 9 і
B9 BACKGROUND MENU OPTION # 10Щ
CD CHANGE DEBUG MODE (СМЕНИТЬ РЕЖИМ ОТЛАДКИ)
CF CLEAR FIELD (ОЧИСТИТЬ ПОЛЕ)
CM INSERT/REPLACE (ВСТАВКА/ЗАМЕНА)
CS CHANGE SPECIAL WINDOW (СМЕНИТЬ СПЕЦИАЛЬНОЕ ОКНО)
DC DELETE CHARACTER (УДАЛИТЬ СИМВОЛ)
DF DISPLAY FUNCTION KEYS (ВЫВЕСТИ СПИСОК ФУНКЦИЙ КЛАВИАТУРЫ)
E1 ENTER/EXECUTE O/S COMMAND (ВВЕСТИ/ИСПОЛНИТЬ КОМАНДУ ОС)
EA ENTER APPLICATION (ВВЕСТИ ПАРАМЕТРЫ ЗАДАЧИ)
PARAMETERS
EM ENTER MENU PARAMETERS (ВВЕСТИ ПАРАМЕТРЫ МЕНЮ)
EO INTERACTIVE O/S COMMAND (ИНТЕРАКТИВНАЯ КОМАНДА ОС)
H HELP (ПОМОЩЬ)
IL UNDEFINED (НЕОПРЕДЕЛЕННАЯ КЛАВИША)
MD MOVE CURSOR DOWN (ПЕРЕМЕСТИТЬ КУРСОР ВНИЗ)
-- 123 --
ML MOVE CURSOR LEFT (ПЕРЕМЕСТИТЬ КУРСОР ВЛЕВО)
MM GO TO MAIN MENU (ПЕРЕЙТИ В ГЛАВНОЕ МЕНЮ)
MR MOVE CURSOR RIGHT (ПЕРЕМЕСТИТЬ КУРСОР ВПРАВО)
MU MOVE CURSOR UP (ПЕРЕМЕСТИТЬ КУРСОР ВВЕРХ)
NF NEXT FIELD (СЛЕДУЮЩЕЕ ПОЛЕ)
PF PREVIOUS FIELD (ПРЕДЫДУЩЕЕ ПОЛЕ)
PM PREVIOUS MENU (ПРЕДЫДУЩЕЕ МЕНЮ)
RS REDISPLAY SCREEN (ВОССТАНОВИТЬ ИЗОБРАЖЕНИЕ)
RU REDEFINE (ПЕРЕОПРЕДЕЛИТЬ ИМЯ_ПОЛЬЗО-
USERNAME/PASSWORD ВАТЕЛЯ/ПАРОЛЬ)
SB SHOW BACKGROUND MENU (ВЫВЕСТИ ФОНОВОЕ МЕНЮ)
TM TERMINATE INPUT ON FORM (ЗАВЕРШИТЬ ВВОД ПО ФОРМЕ)
X EXIT (ВЫХОД)