НПКО Мекомп
УТИЛИТЫ ОРАКЛА
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
21 ИЮЛЯ 1986
Copyright (c) 1985,Oracle Corparation,Belmont,California,USA.
All right reserved.
Author:Shelly L.Demmick
ПРЕДИСЛОВИЕ
Это руководство описывает 2 утилиты системы управления реляционными БД
(СУРБД) Оракл:
ODL - загрузчик данных Оракла (от английского Oracle Data Loader) являет-
ся утилитой для загрузки данных из файлов данных существующей OC в таблицы
Оракла.
Утилита экспорт/импорт (Export/Import Utility) - утилита для передачи
данных из таблиц Оракла в файлы OC и для перезагрузки данных в такие файлы в
БД Оракл.
Главы содержат требования к входным файлам и описания выходных файлов,
контролирующие какие данные загружаются,импортируются или экспортируются.При-
меры файлов,созданных или используемых,приведены вместе с примерами работы с
ODL и утилитой экспорт/импорт.
Читательская аудитория
Настоящее руководство написано для пользователей,которые хотят:
- загружать данные в БД Оракл из файлов OC (используя ODL);
- перемещать данные из и в БД Оракл (используя утилиту экспорта/импорта).
Предполагается,что читатели имеют знания и опыт по работе с языком SQL и
фундаментальными понятиями БД Оракл.В дополнение к этому ODL,чтобы пользователь
рационально создавал и редактировал файлы OC и файлы данных,для того чтобы ис-
пользовать их как входные к ODL.
КАК ЭТО РУКОВОДСТВО ОРГАНИЗОВАНО
Это руководство состоит из 2 глав:
1.Загрузчик данных Оракла (ODL).
2.Утилита экспорт/импорт.
Приложение содержит сообщения об ошибках,которые СУРБД Оракл может генерировать.
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА
Вместе с этим руководством Вам может оказаться необходимым обратиться к
следующим документам,напечатанным Оракл Корпорэйшн:
Oписание реализации реляционной СУБД Оракл.Оракл часть 3001.(ORACLE RBDMS
Release Notes.ORACLE Part No.3001);
Руководство по администратору БД Оракл.Оракл часть 3601.(ORACLE Database
Administrator's Guide.ORACLE Part No.3601).
Cообщения и коды ошибок.Оракл часть 3605.(Errors messages and Codes.ORACLE
Part No.3605).
ОГЛАВЛЕНИЕ
Глава 1.Загрузчик данных Оракла (ODL).................
Особенности ODL...............................
Схема работы ODL..............................
Чего не может делать ODL......................
Пререквизиты ODL..............................
Команда ODL...................................
Примеры....................................
CONTROL-файл..................................
Оператор DEFINE RECORD.....................
Пример..................................
Оператор DEFINE SOURCE.....................
Пример..................................
Оператор FOR EACH..........................
Пример..................................
Файл исходных данных..........................
LOG-файл......................................
BAD-файл......................................
Сообщения ODL.................................
Подсказки ODL.................................
Загрузка данных типа DATE...................
Проверка ранга или значения.................
Глава 2.Утилита экспорт/импорт........................
Особенности утилиты экспорт/импорт............
Что утилита экспорт/импорт не может делать....
Исправление ошибок............................
Утилита экспорт...............................
Режимы экспорта............................
Кто может выполнять экспорт?...............
Команда EXPORT...............................
Экспорт в режиме полной базы данных..........
Пример.....................................
Экспорт в режиме пользователя................
Пример.....................................
Экспорт в режиме таблицы.....................
Пример.....................................
Утилита импорт...............................
Кто может выполнять импорт ?...............
Команда утилиты импорт.......................
Пример работы с утилитой импорт............
Импорт экспорт-файлов,созданных до 5 версии..
Подсказки утилиты экспорт/импорт.............
Таблицы,созданные по аналогии.............
Опция сжатие (COMPRESS)...................
Экспорт/импорт данных типа LONG...........
Экспорт/импорт больших таблиц.............
Приложение А.Сообщения об ошибках ODL...........
Ошибки в операторе CONTROL................
Роковые ошибки............................
Ошибки в Оракле...........................
Словарь терминов................................
+ Глава 1.Загрузчик данных Оракла (ODL)
Загрузчик данных Оракла (в дальнейшем называемый по английской абревиатуре
ODL от ORACLE DATA LOADER) является утилитой Оракла для загрузки исходных дан-
ных из файлов OC в таблицы БД Оракл.Эти таблицы должны существовать перед за-
пуском ODL; сам ODL таблиц не создает.
Возможности ODL
Пользователь ODL может:
* загружать все данные из файла в таблицу Оракла;
* выборочно загружать часть данных из файла данных;
* выборочно загружать некоторые столбцы в таблицу (включая все определенные
как NOT NULL);
* использовать функцию генерации определяющего целочисленного ключа для каж-
дой записи;
* загружать задаваемое число записей;
* пропускать задаваемое число записей перед началом загрузки;
* определять по задаваемому числу ошибок продолжать ли выполнение или прекра-
тить.
Схема работы ODL
Для запуска ODL Вам просто необходимо ввести команду ODL с некоторыми аргу-
ментами.Вся та информация,что нужна утилите ODL задается в командной строке и
в файлах,задаваемых в командной строке.
Как входные,Вы опредусматриваете 2 или более файла:
CONTROL-файл.Этот файл содержит общие схемы для выполнения загрузки.
файл(ы) исходных данных.Этот файл содержит данные для загрузки.Один или не-
сколько файлов данных м.б. загружен при одном control-файле.Имена файлов дан-
ных указаны в control-файле.
Запущенная командой ODL утилита ODL следует инструкциям control-файла,чита-
ет файлы с исходными данными в именованную таблицу Оракла,используя операторы
SQL INSERT.За время работы ODL создается два или более файла для слежения за
выполнением.
LOG-файл.ODL постоянно заполняет LOG-файл,который содержит число прочитан-
ных,загруженных или отвергнутых записей.
BAD-файл.Обнаруживая какие-либо некорректные записи,ODL cоздает BAD-файл
(дословно: плохой файл или файл для учета некорректных записей).Например,если
ODL обнаруживает запись с некорректным значением в столбце (таким как тексто-
вое значение при загрузке в столбец,содержащий числа),то заносит запись в BAD-
файл,а затем переходит к загрузке следующей записи.В дальнейшем BAD-файл м.б.
отредактирован для корректировки ошибок в данных,и эти данные перезагружены с
помощью ODL.
Ъ--------------------------------------------------------------ї
і INPUT EXECUTION OUTPUT і
і ВХОД ВЫПОЛНЕНИЕ ВЫХОД і
і ------------ -------------- --------- і
і і CONTROL- і<--->і і<--->і ORACLEі --------- і
і і -файл і і і --------- і LOG- і і
і ------------ і ODL і<------------------>і -файл і і
і ------------ і і --------- і
і і Файлы і<--->і і --------- і
і і исходных і і і<------------------>і BAD- і і
і і данных і -------------- і -файл і і
і ------------ --------- і
А--------------------------------------------------------------Щ
Рис.1 Схема операций ODL
ЧЕГО НЕ МОЖЕТ ДЕЛАТЬ ODL
ODL не может:
* загружать более одной таблицы во время одного выполнения CONTROL-файла;
* загружать записи,которые содержат более одной физической записи файла
данных.
Например,следующая схема записей файла исходных данных м.б. загружена с
помощью ODL:
Ъ------------------------------Дї
і Запись 1 і
і Запись 2 і
і Запись 3 і
і ... і
А------------------------------ДЩ
Однако следующая схема записей загружена быть не может:
Ъ------------------------------ї
і Запись 1 і
і ...продолжение записи 1 і
і Запись 2 і
і ...продолжение записи 2 і
і Запись 3 і
і ...продолжение записи 3 і
і ... і
А------------------------------Щ
Пререквизиты ODL
Таблицы для того,чтобы их загрузить,уже должны существовать; в отличие от
утилиты импорт,ODL не создает для пользователя таблиц.
Пользователь,запускающий ODL,должен только иметь доступ к БД,определенный
как CONNECT (Resource не требуется).Пользователь д.б. создателем (владельцем)
таблицы,чтобы ее загрузить; однако он может предусмотреть в таком случае при-
вилегию,определенную как INSERT.
Пользователь должен предусмотреть CONTROL-файл и файл данных.CONTROL-файл
указывается в команде ODL.Оба файла д.б. доступны по чтению во время работы
ODL.
ODL требует,чтобы первая прочтенная для загрузки запись была корректна;
если нет,то ODL прекращает выполнение.
КОМАНДА ODL
После того,как у Вас созданы основные входные файлы таблица для загрузки в
БД Оракл; Вы можете запускать ODL.С помощью опций команды ODL Вы можете опре-
делить:
* пропустить X записей перед началом загрузки (опция S);
* сблокировать каждые X записей (опция C);
* обработать вне зависимости от обнаруженного числа ошибок (опция E);
* прекратить выполнения после обнаружения X-вой ошибки (опция Е).
Для этих опций определено время выполнения,но не в CONTROL-файле.Таким об-
разом,СONTROL-файл задает некоторые параметры загружаемых данных,а другие за-
даются при задании соответствующей команды.
Синтакс команды ODL показан на рис.2.Опции команды приведены ниже.
Ъ------------------------------------------------------------Дї
і ODL control-file log-file [uid] [-options] і
А------------------------------------------------------------ДЩ
Рис.2.Синтаксис команды ODL
Вы должны задать имена CONTROL-файла и LOG-файла в командной строке.
control-file является именем СONTROL-файла,который в свою очередь содержит
имя файла исходных данных.Таким образом,Вам не нужно указывать какие-либо фай-
лы данных в командной строке.
log-file является именем LOG-файла,который содержит сообщения об ошибках и
статистику выполнения загрузки.
uid - имя пользователя/пароль для владельца загружаемой таблицы (или владе-
льца синонима таблицы).Если uid-имя не указано,то ODL будет ожидать ввода.
Спецификации команды ODL м.б. приведены в любой комбинации.Каждая опция во-
спринимает целочисленное n как аргумент.
S - Пропустить n записей перед началом загрузки.По умолчанию n принимается
равным 0.Если загружаются многочисленные файлы данных,записи пропускаются
только в первом файле.
L - Загрузка n записей (после пропуска того количества записей,что указано в
опции S).Если L не определено,то по умолчанию загрузка производится до
конца файла.
n > 0 - чтение n записей на входе.
n = 0 - загрузка до конца файла (также как и по умолчанию).
E - Допускает n-ошибок перед завершением работы ODL.По умолчанию 50 ошибок
вызовут прекращение загрузки данных утилитой ODL.
n > 0 - допускает n ошибок перед завершением работы.
n = 0 - загрузка данных производится без учета количества ошибок.
B - число байтов,используемых для связанных массивов и входных буферов.По
умолчанию это 16 К и обычно неизменно,однако Вы можете увеличить это зна-
чение при загрузке особенно широких таблиц.Максимального значения не пре-
дусмотрено; максимум зависит от возможности памяти.
C - сблокирование после загрузки каждых N записей.По умолчанию осуществляется
загрузка 100 записей между сблокировками.
N > 0 - сблокирование после N успешных вводов.
N = 0 - cблокирование производится только после того,как таблица загруже-
на полностью.
ПРИМЕРЫ
Приведены 2 примера работы с ODL.В первом примере будет прочтен CONTROL-фа-
йл JUNECOUNT,и LOG-файл JUNELOG будет содержать информацию о текущей загрузке
.ODL пропустит (опция skip) 1000 записей перед загрузкой оставшихся записей в
файл данных,и ODL прекратит выполнение при обнаружении 20 ошибок.Сблокирование
будет выполнено через каждые 100 записей.
ODL junecont.ctl junelog.log shirley/bear -S1000 -E20
Последующий вызов ODL сблокирует каждую запись и загрузит сплошной файл да-
нных без учета числа встреченных ошибок.
ODL sample.ctl logsamp.log scott/tiger -C1 -E0
CONTROL-файл
Для выполнения ODL необходимы по крайней мере: CONTROL-файл и один или нес-
колько файлов исходных данных.CONTROL-файл определяет,что ODL будет делать за
один сеанс работы с ней.В команде ODL Вы задаете имя CONTROL-файла,а CONTROL-
файл определяет имена файла(ов) данных.
Размер или тип CONTROL-файла по умолчанию не определяются; таким образом,Вы
должны задать полное имя файла в команде ODL.
CONTROL-файл должен состоять из 3 частей:
1.оператора DEFINE RECORD;
2.оператора DEFINE SOURCE;
3.оператора FOR EACH.
На рис.3 приведен пример CONTROL-файла,который определяет запись,называемую
EMPLOYEE,содержащий 3 поля - имя employee (ENAME),ранг (EGRADE) и плата (ESA-
LARY).
Ъ--------------------------------------------------------------ї
і DEFINE RECORD employee AS і
і ename (char (20) ), і
і egrade (integer(2) ), і
і esalary (float(4),loc( +10) ); і
і DEFINE SOURCE TAPE і
і FROM file1,file2 і
і LENGTH 80 і
і CONTAINING employee ; і
і FOR EACH RECORD і
і INSERT INTO empmain і
і ( name,performance,grade,gross, і
і nullcol,salary,start) VALUES і
і (ename,87.6543,egrade,.86e - 6, і
і null,esalary,356 ) і
і NEXT RECORD і
А--------------------------------------------------------------Щ
Рис.3 Пример CONTROL-файла ODL
Поле ENAME указывается в начале записи и занимает 20 байт.Следующие 2 байта
содержат поле EGRADE.Поле ESALARY занимает 10 байт правее (за) поля EGRADE.Ис-
точник ввода,именуемый TAPE,занимает 2 файла,каждый с длиной записи по 80 байт
каждый.7 колонок таблице EMPMAIN БД загружаются либо полями из записей исход-
ных данных EMPLOYEE либо заданными константами.
ОПЕРАТОР DEFINE RECORD
Оператор DEFINE RECORD описывает данные,находящиеся в файле исходных дан-
ных.Это :
* именует запись,которая должна быть загружена;
* именует поля записи,которая быть загружена;
* связывает тип данного и поле;
* задает расположение каждого поля в записи.
Основной синтакс для оператора DEFINE RECORD показан на рис.4.
Ъ--------------------------------------------------------------ї
іDEFINE RECORD rec-name AS fld-name (fld-type [,LOC(fld-loc)]) і
і (fld-type [,LOC(fld-loc)]); і
А--------------------------------------------------------------Щ
Рис.4 Синтакс оператора DEFINE RECORD
Описание переменных следует ниже:
rec-name - имя,используемое для обращения к записям исходных данных;
fld-name - имя,используемое для обращения к полю исходных данных;
fld-type определяет тип данных,один из следующих:
{ FLOAT і INTEGER і CHAR } [(size}]
соответствующие типам данных: с плавающей запятой,целое с двойной точностью
и текстовое.
Размер в байтах (заносятся в скобках) указывать необязательно,требуется для
значений,отличных от принимаемых по умолчанию.Приемлимые значения размеров и
принимаемые по умолчанию значения следующие:
+ М А Ш И Н А
- - Значения по умолчанию - -
Тип данного Размеры RSX VAX IBM
11-М VMS MVS,CMS UNIX
ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
FLOAT 8,4 8 8 8 различные
INTEGER 4,2,1 2 4 4 различные
CHAR от 1 до 240 1 1 1 1
ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
fld-loc - позиция поля в записи исходных данных:
і + number і
LOC ( і - number і )
і number і
Обратите внимание,что первая позиция каждой записи относится к нулевому
столбцу (0),не единичному (1).Целочисленное значение без какого-либо знака яв-
ляется абсолютным положением от начала записи.Знак перед значением означает,
что позиция определяется относительно конца последнего поля.(Знак минус озна-
чает,что позиция определяется по отношению начала записи и знак плюс,что по
отношению к концу записи.) Позицией по умолчанию является конец предыдущего
поля или начало начало записи для первого поля.
Если колонка БД определена по типу NUMBER и полем исходных данных является
цепочка ASCII-кодов,воспроизводящая количество цифр,тогда тип данного должен
определяться как CHAR.Оракл производит конверсию в численный формат.
ПРИМЕР
DEFINE RECORD REC1 AS
FLD1 (CHAR(6)),
FLD2 (CHAR(25)),
FLD3 (FLOAT,LOC(-3));
ОПЕРАТОР DEFINE SOURCE
Оператор DEFINE SOURCE определяет источника ввода (такое как файл или лента)
и запись содержится в пределах этого источника.Синтакс показан на рис.5.
Ъ--------------------------------------------------------------ї
і DEFINE SOURCE src-name і
і FROM filename [,filename ...,filename] і
і LENGTH length і
і CONTAINING rec-name ; і
А--------------------------------------------------------------Щ
Рис.5.Синтакс оператора DEFINE SOURCE
Предписания для документов следуют далее:
src-name - символическое имя для источника; оно м.б. идентификатором.Обычно
Вы будете использовать для этого параметра значения FILE (файл)
или TAPE (лента).
filename - имя файла OC,содержащего исходные данные.Многие имена файлов,раз-
деленные запятыми,м.б. использованы для соединения файлов на входе.
length - длина записи исходных данных.Заданная длина записи д.б. максималь-
ной длиной записи.Если какая-нибудь запись превысит длину записи,то
ODL выдаст следующее сообщение:
Read error,skipping to next file
[ Ошибка при чтении,переход к следующему файлу ]
и продолжит выполнение.Записи переменной длины обрабатываются,собственно гово-
ря,до тех пор пока последний столбец не окажется переменным по длине или все
столбцы после переменого значения данного не NULL.Логическая длина записи не
зависит от аттрибутов файла,но является тем же самым,что и физическая длина
записи.Например,RSX-11M и VAX/VMS позволяют в файлах иметь подразумевающийся
возврат каретки.
Если источником является файл переменной длины записи,cодержащий записи фи-
ксированной длины,тогда Вы не должны включать LOC для пропуска подсчета байтов
перед записью.ODL обнаружит поле подсчета байтов при подсчете позиций поля и
использует актуальную логическую длину записи.
rec-name - имя записи,используемое в операторе DEFINE RECOR
ПРИМЕР
DEFINE SOURCE SRC1
FROM FILE1,FILE2,FILE3
LENGTH 80
CONTAINING REC1 ;
ОПЕРАТОР FOR EACH
Оператор FOR EACH читает каждую запись исходных данных и вводит ее в задан-
ную таблицу.Синтакс этого оператора показан на рис.6.
Ъ--------------------------------------------------------------Дї
і FOR EACH RECORD INSERT INTO table-name (col-name,col-name...) і
і VALUES (fld-name,fld-name ...) і
і NEXT RECORD і
А--------------------------------------------------------------ДЩ
Рис.6.Синтакс оператора FOR EACH.
Стандартный оператор INSERT языка SQLвыполняется для каждой записи.Оператор
FOR EACH является просто стандартным оператором INSERT языка SQL в форме:
INSERT INTO tab-name
( col-name,...,col-name) VALUES ( src-data,...) .
где tab-name - имя Вашей таблицы или синоним,который Вы создали для какой-
то другой таблицы.Имена таблиц вида:
SCOTT.DEPT
не м.б. загружены.Чтобы загрузить какую-либо другую таблицу,Вы можете исполь-
зовать синоним для таблицы,для которой Вы хотите осуществить доступ оператором
INSERT.Вы должны задать список колонок для ввода и использовать ключевое слово
VALUES.Затем задать список имен файлов исходных данных или значений данных,ра-
зделенные скобками.Вы можете задать любые из следующих,как данные для загрузки:
* имя поля в файле исходных данных;
* цепочка символов;
* число (или цепочка цифр или научных обозначений);
* NULL;
* функция GENSEQ (функция генерации нового целочисленного номера для каждой
записи.Формат следующий:
GENSEQ(initial_value,increment_value)
как в:
FOR EACH RECORD
INSERT INTO CODE_TABLE (GENKEY,DESCRIPTION) VALUES
(GENSEQ(100,5),PURPOSE)
NEXT RECORD
где колонка DESCRIPTION в таблице CODE_TABLE загружается значением в поле
PURPOSE,и колонка GENKEY дает неповторяющиеся значения,генерируемые во время
загрузки.Первым значением будет 100 и каждое последующее будет увеличиваться
на 5; таким образом,первые значения функции GENKEY будут 100,105,110,115 и тд.
Фраза (конструкция) NEXT RECORD требуется для выхода из цикла ввода.
ПРИМЕР
FOR EACH RECORD
INSERT INTO EMP ( EMPNO,EMPNAME,SALARY,COMM ) VALUES
( FLD1,FLD2,FLD3,NULL )
NEXT RECORD
ФАЙЛ ИСХОДНЫХ ДАННЫХ
CONTROL-файл утилиты ODL может ссылаться на один или несколько файлов дан-
ных.Файлы данных м.б. в формате любой записи,определенной OC до тех пор пока сле-
дующие утверждения истины:
* записи м.б. фиксированной или переменной длины;
* каждая физическая запись в файле соответствует новой логической записи;
* первая запись,которую читает ODL в файле,д.б. корректной иначе ODL не про-
должит выполнение.Если Вы зададите,что ODL должна пропустить 100 записей
перед началом загрузки,тогда 101-ая запись д.б. корректной;
* каждое поле записи должно иметь фиксированную длину,исключая последнее поле;
* последнее поле может иметь переменную длину; если это переменная длина,то
значения данных разделяются пробелами перед тем как вводятся в таблицу;
* не все поля исходной записи д.б. загружены; любые колонки м.б. пропущены,в
зависимости от CONTROL-файла;
* колонки данных исходной записи не нужно ставить в соответствие с колонками
таблицы; они могут однако соответствовать операторам DEFINE RECORD и FOR
EACH в CONTROL- файле;
* поддерживаются следующие типы данных:
- цепочки символов;
- целые двоичные числа;
- числа с плавающей запятой.
ODL в настоящее время не имеет доступа к упакованным 10-ным числам.
Дополнительную информацию о файлах исходных данных Вы можете найти в "Руко-
водстве по инсталяции" и в "Руководстве пользователя" Вашей конкретной OC.
LOG-файл
Когда ODL выполняет загрузку,она пишет LOG-файл,в который заносит количест-
во загруженных записей со статистикой и сообщениями об ошибках,являющиеся ре-
зультатом загрузки.Имя LOG-файла задается,когда Вы запускаете ODL; нет расши-
рения файла или типа файла по умолчанию,так лучше всего однозначно задать еди-
ницу.(Не используйте расширение или тип файла BAD,так ODL автоматически имену-
ет BAD-файл,используя имя LOG-файла с расширением или типом файла BAD.)
Одно из сообщений в LOG-файле показывает записей было введено из буфера за-
писей; раз запустив ODL,Вы можете использовать эту обратную связь,если хотите,
для подстройки размера буффера для поддержки большего или меньшего количества
строк на один ввод.При подстройке буфера для поддержки большего числа строк,
загрузка будет выполнена быстрее.
На рис.7 показан пример LOG-файла.
Ъ--------------------------------------------------------------Дї
іORACLE DATA LOADER: VERSION 5.02.12 on Wed Sep 25 11:35:03 1985і
іCopyright (c) 1985,Oracle Corporation,California,USA. і
і All rights reserved. і
іLOGGED INTO ORACLE V5.0.12 - Beta і
і 16384 TOTAL BIND SPACE і
і 654 MAXIMUM BIND ARRAY DIMENSION і
і 16368 MAXIMUM BIND ARRAY SIZE IN BYTES і
і 654 ACTUAL BIND ARRAY DIMENSION LIMITED BY MEMORY і
і 16368 ACTUAL BIND ARRAY SIZE IN BYTES і
іLOGGED OUT FROM ORACLE і
іSTATISTICS і
і 574 BYTES ALLOCATED і
і 0 RECORDS SKIPPED і
і 254 RECORDS READ і
і 0 RECORDS REJECTED і
і 254 ROWS LOADED і
і 0 ERRORS і
іEND ORACLE DATA LOADER Wed Sep 25 11:35:13 1985 і
А--------------------------------------------------------------ДЩ
Рис.7.Пример LOG-файла.
Если ODL обнаруживает ошибку в первой записи,то выполнение немедленно прек-
ращается и никакие записи не загружаются.В LOG-файле появляется сообщение,та-
кое же как приведено далее:
EXEC ERROR: ORA-1438: value larger than specified presision al-
lows for this column
RECORD 1 REJECTED
LOGGED OUT FROM ORACLE
BAD-ФАЙЛ
Если ODL обнаруживает любые записи в файле исходных данных,которые не м.б.
успешно введены,то создает BAD-файл для занесения в него отвергнутых записей.
Вводимая запись отвергается,если она не соответствует предписаниям в CONTROL-
файле.Вы можете отредактировать BAD-файл для исправления ошибок и перезагрузи-
ть эти записи с помощью ODL,используя тот же CONTROL-файл ODL.
Именем BAD-файла автоматически является имя LOG-файла с расширением или ти-
пом файла BAD.Таким образом,при следующем запуске ODL был бы создан BAD-файл с
именем IM.BAD,если были бы обнаружены любые некорректные записи:
ODL SURVEY.CTL IM.LOG RODNEY/HERRING
СООБЩЕНИЯ ODL
ODL вырабатывает сообщения,которые записываются в LOG-файл,включая следую-
щие статистические сообщения:
number of records read
number of records skipped
number of records loaded
number of records rejected
Когда при обработке записи встречается ошибка,то вырабатывается следующее
сообщение (где # есть N читаемой записи):
RECORD <#> REJECTED
ПОДСКАЗКИ ODL
ЗАГРУЗКА ДАННЫХ ТИПА DATE
Чтобы загрузить данные типа DATE,во-первых,данные загружаются в столбец,оп-
ределенный как CHAR во временной таблице.Затем используется оператор INSERT с
вложенным выбором для ввода строк в постоянную таблицу (или оператор CREATE
TABLE с вложенным выбором),используя функцию TO_DATE для конвертирования дан-
ных типа CHAR в стандартный формат данных ORACLE FORMAT.
ПРОВЕРКА РАНГА ИЛИ ЗНАЧЕНИЯ
Для организации проверки корректности загружаемых данных,такой как проверка
ранга,данные сначала загружаются во временную таблицу.Для пересылки данных в
постоянную таблицу используется оператор INSERT с вложеным выбором (или опера-
тор CREATE TABLE с вложенным выбором).Конструкция вложенного выбора WHERE дол-
жна задавать проверку данных,как в приведенном примере:
...WHERE COL1 in ('A','B','C') and
COL2 BETWEEN 1 AND 10...
+ ГЛАВА 2.УТИЛИТА ЭКСПОРТ/ИМПОРТ
Утилита экспорт обеспечивает способ копирования данных в БД для дублирова-
ния файлов.Сопровождающая утилита импорт сохраняет экспортированные данные в
БД Oракл.
ОСОБЕННОСТИ УТИЛИТЫ ЭКСПОРТ/ИМПОРТ
Утилиты экспорт/импорт м.б. использованы для:
* хранения данных Оракла в файле OC независимо от любой БД оракла;
* хранения следующих данных Оракла:
- описаний таблиц;
- данных таблиц;
- регистраций пользователей;
- синонимов;
- описаний экранных форм;
- описаний областей;
- индексов;
* освобождать пространство в БД;
* хранить старые или временные данные;
* перемещать данные между БД Оракла;
* конвертировать данные между ASCII- и EBCDIC-кодами;
* перемещать данные из старой БД Оракла в новую версию;
* передавать данные от одного пользователя другому.
ЧЕГО УТИЛИТЫ ЭКСПОРТ/ИМПОРТ НЕ МОГУТ ДЕЛАТЬ
Большинство пользователей Оракла могут экспортировать только объекты,кото-
рыми они владеют; DBA (администратор БД,от английского Data Base Administrator)
является единственным пользователем,который может экспортировать или импортиро-
вать таблицы или данные,принадлежащие любому пользователю.
Поскольку экспортируемые файлы находятся в специальном сжатом формате,файлы
созданные утилитой экспорт не м.б. ни отредактированы ни использованы другими
утилитами или продуктами,такими как ODL или программируемыми интерфейсами.
ИСПРАВЛЕНИЕ ОШИБОК
Утилиты экспорт/импорт пытаются продолжить выполнение после обнаружения
ошибок.Если встречается ошибка,пока строка вводится в импорт,некорректная ст-
рока помечается,и импортируется оставшаяся часть таблицы; тоже справедливо для
утилиты экспорт.Если встречается фатальная ошибка,пока импортируется или экс-
портируется одиночная таблица,выполнение продолжается со следующей таблицей.
Если встречается DDL-ошибка,выполнение продолжается.
УТИЛИТА ЭКСПОРТ
Утилита EXPORT используется для записи данных из БД Оракла в файл OC либо
для архивирования данных или сохранения в БД Оракла,используя в дальнейшем
утилиту IMPORT.Утилита EXPORT - простая в использовании,интерактивная утилита;
она задает несколько вопросов,и выполнение базируется на Ваших ответах.
РЕЖИМЫ ЭКСПОРТА
Первый высвечиваемый запрос о том,какой режим экспорта (MODE of Export) Вы
хотите использовать.Информация,которую Вы можете экспортировать зависит от вы-
бранного режима (MODE).У большинства пользователей 2 возможности выбора,DBA-
пользователь может выбрать режим полной БД (FULL DATABASE):
* режим пользователя (Users Mode);
* режим таблицы (Tables Mode);
* режим полной БД (FULLDB).
На рис.8 суммировано,что может и не может экспортироваться для каждого из
режимов экспорта.
Ъ------------------------------------------------------------ї
іРежим (Mode) USER TABLES FULLDB і
Г------------------------------------------------------------ґ
і Будут ----- описания таблиц ----- і
і экспортированы ----- табличные данные ---- і
і ----- указатели пробелов --- і
і кластеры, кластеры, і
і регистрации индексы, і
і пользователей регистрации і
і первого пользователей,і
і уровня, экранные і
і индексы формы, і
і синонимы і
і і
і Не будут экраннные экранные объекты, і
і экспортированы формы, формы, относящиеся к і
і синонимы синонимы, SYS і
і кластеры, і
і индексы, і
і регистрации і
і пользователей і
А------------------------------------------------------------Щ
Рис.8 Что может и не может экспортироваться
КТО МОЖЕТ ВЫПОЛНЯТЬ ЭКСПОРТ ?
Пользователь Оракла должен иметь либо RESOURCE- либо DBA- привилегию в Ора-
кла по использованию экспортa.Пользователи,имеющие привилегию CONNECT не могут
экспортировать данные из БД.
Пользователь,выполняющий экспорт,д.б. уверен,что располагает адекватным ди-
сковым пространством,куда экспортированный файл м.б. записан.
КОМАНДА EXPORT
Команда EXPORT начинает небольшой интерактивный сеанс работы,во время кото-
рого утилита экспорт запрашивает у Вас ответы на несколько вопросов перед вы-
полнением экспорта.Две формы синтакса команды EXPORT показаны на рис.9.
Ъ--------------------------------------------------------------ї
і EXP і
і EXP [username/password] і
А--------------------------------------------------------------Щ
Рис.9.Синтакс команды EXP.
После того,как Вы ввели команду EXP,утилита экспорт продолжает выполнение,
высвечивая несколько запросов.В общем,в запросе уже показаны ответы по умолча-
нию,и если ответы по умолчанию приемлемы,то нажмите ENTER или возврат каретки.
В любой момент Вы можете ввести period-RETURN для указания завершения Вашего
ввода.
Enter array fetch buffer size(default is 4096)
Введите размер области вызываемого буфера(по умолчанию 4096)
Этот запрос определяет размер доступный для строк буфера.Утилита экспорт испо-
льзует программу связи вызова области памяти,вызываемую для скоростного выпол-
нения.Значение,принимаемое по умолчанию,как правило,адекватно.Если вводится 0,
то запрашивается только одна строка.
Export file name (Имя экспортируемого файла.)
Это имя выходного файла,который д.б. создан в результате работы утилиты экспо-
рт.Если Вы вводите только имя файла,то расширением или типом файла будет DMP.
Mode of export (Режим экспорта)
Ваш выбор зависит от того,располагаете ли Вы или нет привилегией DBA.Если да,то можете выбрать из трех режимов,если нет,то
Вы должны выбирать из двух.
С этого момента появляющиеся запросы зависят от выбранного режима.Возможны
следующие запросы:
Export grants? (Экспортировать регистрации пользователей?)
Если Вы ответите YES,то регистрации пользователей,что будут экспортированы,бу-
дут зависеть от того,находитесь ли Вы в режиме полной БД (FULLDB) или в режиме
пользователя (USER).
Export the rows? (Экспортировать строки?)
Если Вы ответите YES,тогда данные в таблицах экспортируются вместе с описания-
ми таблиц.Если Вы ответите NO,тогда будут экспортированы только описания таблиц.
Compress extents? (Сжать экстенты?)
По умолчанию или если Вы задаете YES в этом запросе,тогда данные для каждой
экспортируемой таблицы в этом сеансе работы будут сжаты в один начальный экс-
тент для экспорта.Для индикации "no user" (и завершения текущего сеанса работы
с утилитой экспорт),экспортер должен ввести period"." .
Table name (Имя таблицы)
Если появляется этот запрос,то утилита экспорт требует имя следующей таблицы
для экспорта.Имя таблицы м.б. введено с или без префикса владельца таблицы;
если префикс не вводится,то префиксом становится префикс экспортера или владе-
льца последней экспортированной в этом сеансе таблицы.Для определенности,если
пользователь А обладает привилегией администратора БД (DBA) и экспортирует в
режиме таблицы (TABLES MODE),тогда все таблицы интерпретируются в контексте
пользователя А до тех пор пока не будет задано другое конкретное имя пользова-
теля.
Когда утилита экспорт скомпилирована во время установки,модуль EXPORT ука-
зывает на то,на исходной ли это ASCII- или EBCDIC-машине.Все экспортируемые
файлы автоматически записываются с использованием этого соглашения.Когда IMPO-
RT пытается импортировать экспортированный файл,то определяет требуется ли
трансляция,и если так,то выполняет ее.
ЭКСПОРТ В РЕЖИМЕ ПОЛНОЙ БАЗЫ ДАННЫХ
Только пользователи,имеющие привилегию DBA могут экспортировать,используя
режим полной БД (FULL DATABASE MODE).Если записываете экспортируемый файл на
диск,то удостоверьтесь в том,что выделено адекватное пространство на диске для
помещения туда файла.
ПРИМЕР
В этом примере исходная БД экспортируется в файл EXPDAT.DMP cо всеми регис-
трациями пользователей и всеми данными.
Ъ--------------------------------------------------------------Дї
і EXP SYSTEM/MANAGER і
і Export: Version 5.0.13 on Wed Oct 9 12:10:32 1985 і
і і
і Copyright (c) 1985,Oracle Corparation,California,USA.All і
і rights reserved. і
і Enter array fetch buffer size(default is 4096)> (RETURN) і
і Export file: EXPDAT.DMP > dba.dmp і
і E(ntire database),U(sers),T(ables): U > e і
і Export Grants (Y/N): N > y і
і Export the rows (Y/N): Y > y і
і Compress extents (Y/N): Y> y і
і Exporting the entire data base. і
і * Exporting user definitions. і
і * Exporting all space definitions. і
і * Exporting all clusters. і
і * Exporting user SYSTEM. і
і * Exporting table EFIBREAKS 10 Rows exported і
і [...и так далее по остальным таблицам] і
А--------------------------------------------------------------ДЩ
ЭКСПОРТ В РЕЖИМЕ ПОЛЬЗОВАТЕЛЯ
На рис.8 посмотрите,что Вы можете и что не можете экспортировать в режиме
пользователя (USER MODE).Если DBA экспортирует в режиме пользователя,то он мо-
жет экспортировать данные для многих пользователей.Обычный пользователь может
экспортировать только те объекты,которыми он владеет.
ПРИМЕР
Этот пример показывает,как пользователь JOE экспортирует все свои таблицы в
режиме пользователя.
Ъ--------------------------------------------------------------ї
і EXP JOEUSER/JOEPASS і
і Export: Version 5.0.13 on Tue Oct 8 11:12:13 1985 і
і і
і Copyright (c) 1985,Oracle Corparation,California,USA. і
і All rights reserved і
і і
і Enter array fetch buffer size(default is 4096)> (RETURN) і
і Export file: EXPDAT.DMP > joe.dmp і
і U(sers),or T(ables): U > u і
і Export Grants (Y/N): N > y і
і Export the rows (Y/N): Y > y і
і Compress extents (Y/N): Y> y і
і Exporting JOE і
і * Exporting user JOE і
і і
і * Exporting table PEOPLE 100 Rows exported і
і * Exporting table THINGS 666 Rows exported і
і ...and so on through JOE's remaining tables і
А--------------------------------------------------------------Щ
ЭКСПОРТ В РЕЖИМЕ ТАБЛИЦЫ
Посмотрите на рис.8 (стр.19),что Вы можете и что не можете экспортировать в
режиме таблицы (TABLES MODE).Вы можете экспортировать данные или отдельно опи-
сания таблиц.(Если никакие данные не экспортируются,экспортируется только опе-
ратор CREATE TABLES.)
Если DBA экспортирует,используя режим таблицы,то он может экспортировать
таблицы,относящиеся к любому пользователю.Если в режиме таблицы экспортирует
не-DBA,то он может экспортировать только те таблицы,что ему принадлежат.
Таблицы экспортируются,используя указатели пробелов,которые были сделаны
при их создании.
ПРИМЕР
В первом примере DBA экспортирует заданные таблицы для двух пользователей,
используя режим таблицы:
Ъ--------------------------------------------------------------Дї
і EXP SYSTEM/MANAGER і
і Export: Version 5.0.13 on Wed Oct 9 10:43:23 1985 і
і і
і [Copyright notice appers] і
і і
і Enter array fetch buffer size(default is 4096)> (RETURN) і
і Export file: EXPDAT.DMP > (RETURN) і
і E(ntire database),U(sers),T(ables): U > T і
і Export the rows (Y/S): Y > (RETURN) і
і Compress extents (Y/N): Y> Y і
і Exporting Specified Tables. і
і Table Name: > foo і
і ERROR: FOO is not valid or does not exist і
і Table Name: > mortimer.bar [to select user MORTIMER] і
і Current user changed to: MORTIMER і
і .Exporting table BAR 2355 Rows exported і
і Table Name: > rosemary.applicants [to select user ROSEMARY] і
і Current user changed to: ROSEMARY і
і .Exporting table APPLICANTS 14947 exported і
і Table Name: > (RETURN) [export writes file] і
А--------------------------------------------------------------ДЩ
В следующем примере пользователь LEWIS экспортирует выбранные таблицы в
свой отчет в Оракле.
Ъ--------------------------------------------------------------ї
і EXP LEWIS/NEWYORK і
і Export: Version5.0.13 on Wed Oct 9 10:43:23 1985 і
і і
і Copyright (c) 1985,Oracle Corparation,California,USA. і
і All rights reserved. і
і і
і Enter array fetch buffer size(default is 4096)> (RETURN) і
і Export file: EXPDAT.DMP > lew.dmp і
і U(sers),T(ables): U > T і
і Export the rows (Y/N): Y > (RETURN) і
і Compress extents (Y/N): Y> Y і
і Exporting Spesified Tables. і
і Table Name: > kevin.checks і
і Sorry,can't change users - continue і
і Table Name: > credits і
і .Exporting table CREDITS 423 Rows exported і
і Table Name: > debits і
і .Exporting table debits 423 Rows exported і
і Table Name: > (RETURN) [export writes files] і
А--------------------------------------------------------------Щ
УТИЛИТА ИМПОРТ
Утилита импорт используется для чтения данных из экспортированных файлов в
реляционную СУБД Оракл.Например,если пользователь экспортировала все свои таб-
лицы и данные в файл,именуемый MYDATA.EXP,то когда она импортировала этот фа-
йл,утилита импорт создаст заново каждую таблицу и загрузит данные.
Утилита импорт позволяет выборочную (селективную) загрузку данных в экспор-
тируемый файл или загрузку всех данных.Таблицы,кластеры и указатели пробелов
создаются автоматически.Если во время экспорта была выбрана опция "compress
extents" (cжать экстенты),тогда указатели пробелов для больших таблиц будут
расположены так,что все данные,импортированные в таблицу,будут расположены в
начальном экстенте.
Когда утилита экспорт компилируется во время инсталяции,модуль утилиты EX-
PORT записывает находится ли он на "родной" ASCII- или EBDIC-машине.Все экспор-
тфайлы автоматически записываются,используя это соглашение.Когда утилита импо-
рт пытается импортировать экспортированный файл,то определяется,требуется ли
трансляция,и если да,то выполняется.
КТО МОЖЕТ ВЫПОЛНЯТЬ ИМПОРТ ?
Любой пользователь,обладающий привилегией в БД Оракл: RESOURCE или CONNECT
и доступом к экспортированному файлу,может импортировать.Пользователь,пытаю-
щийся импортировать без привилегии СONNECT,получит сообщение об ошибке.Пользо-
ватель,выполняющий импорт,не д.б. тем пользователем,что создал экспорт-файл.
КОМАНДА IMPORT
Импорт является интерактивной утилитой.Утилита импорт задает Вам вопросы,и
выполнение базируется на Ваших ответах.На cледующем рисунке показан синтакс
команды IMPORT.
Ъ--------------------------------------------------------------ї
і IMP і
і IMP username/password і
А--------------------------------------------------------------Щ
Рис.10 Синтакс команды IMP.
Импортируемая информация зависит от того,что содержится в экспорт-файле,ко-
торый Вы импортируете,и от Ваших ответов на ряд запросов утилиты импорт.
Запросы утилиты импорт и их описания следуют далее:
Import file (Импортируемый файл <файл по умолчанию>)
Если Вы хотите импортировать файл,отличный от того,что указан по умолчанию,
введите полное имя импортируемого файла.Вы не обязаны быть пользователем Орак-
ла,который экспортировал этот файл,но Вы должны иметь текущий доступ к этому
файлу.
Enter insert buffer size(default is 10240,minimum is 4096)>
(Введите размер буфера ввода (по умолчанию - 10240,минимум - 4096)> Размер бу-
ффера по умолчанию будет адекватен большинству Ваших таблиц.Тем не менее,Вам
может оказаться необходимым его увеличить для таблиц,у которых столбцы описаны
как LONG (длинные).
List contents of import file only(Y/N):N> (Просмотреть
содержимое только импортируемого файла(ДА/НЕТ):НЕТ>)
Этот запрос позволяет увидеть,что находится в экспорт-файле - например,была ли
экспортирована в этот файл таблица,представляющая особый интерес.
По умолчанию,или если Вы отвечаете нет,IMPORT продолжит с запросами,выясняя,
что Вы хотите импортировать.
Если Вы отвечаете да (YES),утилита импорт задает еще несколько вопросов для
определения того,выводить ли на экран весь экспорт-файл или только его части.
Базируясь на Ваших ответах,утилита импорт выведет на Ваш терминал экспорт-файл
(SQL-оператор создается во время экспорта) и завершит работу без выполнения
импорта.
Ignore create errors due to object existence(Y/N)Y>
(Игнорировать ошибке,возникающие из-за существующего объекта(ДА/НЕТ)ДА>)
Если Вы отвечаете да,то по умолчанию IMPORT будет импортировать строки табли-
цы,даже если не может сначала создать эту таблицу.Если Вы отвечаете нет (NO),
тогда утилита импорт не будет пытаться импортировать строки в случае сбоя в
операторе CREATE TABLES.Выбор YES полезен,когда Вы хотите создать таблицу пе-
ред вызовом IMP,например,потому,что Вы хотите использовать особый определитель
пробелов или кластер.
В некоторых случаях Вы можете требовать выбора YES:
* Если выполняется импорт всей БД и утилита импорт старается сжать все данные
для большой таблицы в начальный экстент.Если довольно много блоков недосту-
пно для начального экстента,то появится сообщение:
out of space in partition
вне памяти на разделение
Вы должны сами создать таблицу с Вашими собственными указателями пробелов и
переимпортировать эту таблицу,ответив YES на этот запрос и NO на запрос
"Import of entire file requested?"
("Tребуется ли импорт всего файла?")
* Вы должны следовать той же процедуре,если Вы обнаружите следующую ошибку:
maxextents exceeded
Import grants(Y/N):Y> (Импортировать регистрации пользователей)
Если Вы ответите Y(es),тогда все регистрации пользователей,что были экспорти-
рованы,импортируются.Если экспорт был выполнен в режиме пользователя,тогда бу-
дут экспортированы и импортированы только регистрации пользователей первого
уровня; если это было сделано в режиме полной БД (FULLDB),тогда все регистра-
ции пользователей будут экспортированы и импортированы.
Import the rows(Y/N):Y> (Импортировать строки)
По умолчанию IMPORT предполагает импортировать строки данных.Однако,если Вы
ответите на этот запрос NO,то IMPORT выполнит операторы задания данных,такие
как CREATE TABLES или CREATE VIEW,но не импортирует актуальные табличные дан-
ные.
Import of entire import file requested(Y/N)Y> (Требуется импорт всего
импорт-файл)
Этот запрос позволяет Вам выбирать,какие таблицы импортировать из экспорт-фай-
ла.По умолчанию,или если Вы отвечаете да,утилита импорт импортирует каждую та-
блицу,что была экспортирована - запросов больше не появится и импорт завершит-
ся после импортирования всего файла.
Если Вы ответите нет,утилита импорт сначала запросит имя пользователя и за-
тем таблицы,относящиеся к этому пользователю,и подлежащие импорту.
Если при импорте будет встречена некорректная строка,она будет распечатана,
и утилита импорт продолжит выполнение.Если фатальная ошибка возникает вследст-
вие импорта отдельной таблицы,то утилита импорт продолжит выполнение со следу-
ющей таблицей.
ПРИМЕР
Первый пример показывает выборочный (селективный) импорт; DBA импортирует,
используя экспорт-файл полной БД для импорта выбранных таблиц выбранных поль-
зователей.
Ъ--------------------------------------------------------------ї
і IMP SYSTEM/MANAGER і
і Import: Version 5.0.13 on Thu Oct 7:08:12 1985 і
і і
і Copyright (c) 1985,Oracle Corparation,California,USA. і
і All rights reserved. і
і і
і Import file: EXPDAT.DMP > dba.dmp і
і Enter insert buffer size(default is 10240,minimum is 4096)> і
і (RETURN) і
і List contents of import file only(Y/N): N > (RETURN) і
і Ignore create errors due to object existence (Y/N): Y > і
і (RETURN) і
і Import grants (Y/N): Y> (RETURN) і
і Import the rows (Y/N): Y> (RETURN) і
і Import of entire import file requested (Y/N): Y > n і
і Username: joe і
і Enter list of table names.Null list means all tables for userі
і Enter table name or .if done: places і
і Enter table name or .if done: people і
і Enter table name or .if done: things і
і Enter table name or .if done: і
і * Importing user JOE і
і * Importing table "PLACES" 50 Rows imported і
і * Importing table "PEOPLE" 100 Rows imported і
і * Importing table "THINGS" 666 Rows imported і
А--------------------------------------------------------------Щ
В следующем примере импортером файла является пользователь,имеющий имя в
Оракле,отличное от того,что имел тот,кто экспортировал данные:
Ъ--------------------------------------------------------------ї
і IMP KEVIN/NEWYORK і
і Import: Version 5.0.13 on Thu Oct 10 9:15:30 1985 і
і і
і Copyright (c) 1985,Oracle Corparation,California,USA. і
і All rights reserved. і
і і
і Import file: EXPDAT.DMP > rosemary.dmp і
і Enter insert buffer size(default is 10240,minimum is 4096)> і
і (RETURN) і
і Warning: the data was exported by ROSEMARY,not by you і
і List contents of import file only(Y/N): N > (RETURN) і
і Ignore create errors due to object existence (Y/N): Y > і
і (RETURN) і
і Import grants (Y/N): Y> (RETURN) і
і Import the rows (Y/N): Y> (RETURN) і
і Import of entire import file requested (Y/N): Y > y і
і * Importing table "APPLICANTS" 14947 Rows imported і
А--------------------------------------------------------------
ИМПОРТ ЭКСПОРТ-ФАЙЛОВ,СОЗДАННЫХ ДО 5 ВЕРСИИ
Утилита импорт в Оракле версии 5 воспримет экспорт-файл,созданный версией
4.Если Вы импортируете из версии 4,то обратите внимание на следующее:
* Выборочный (селективный) импорт отдельных таблиц не м.б. выполнен для экс-
порт-файлов,созданных в версии 4; однако,импорт пользователей целиком рабо-
тает корректно.
* Начиная с версии 5,отсутствует поддержка ALTER CLUSTER,помещенные в класте-
ры таблицы импортируются в освобожденной от кластеров форме.Для учета это-
го,Вы можете создать таблицы в кластерах перед импортом или создать таблицу
и скопировать эти данные в кластер после импорта.
Утилита IMPORT в версии 5 не будет импортировать файлы,экспортированные в
Оракле версии 3.
ПОДСКАЗКИ УТИЛИТЫ ЭКСПОРТ/ИМПОРТ
ТАБЛИЦЫ,СОЗДАННЫЕ ПО АНАЛОГИИ
Когда Вы выбираете создание таблиц по аналогии перед импортом данных в них
из экспорт-файла,Вы должны либо использовать теже описания таблиц,что были ис-
пользованы до,либо совместимый формат.Например,до тех пор пока Вы можете уве-
личивать ширину столбцов,Вы не должны изменять порядок,в котором расположены
столбцы.
ОПЦИЯ СЖАТИЕ (COMPRESS)
Вы можете добиться улучшения выполнения при запуске утилиты EXPORT без оп-
ции сжатия (COMPRESS).Сжатие выполняется по умолчанию,но Вы можете ответить
нет ( N ) в этом запросе:
Compress extents (Y/N):Y>
Экспорт/импорт данных типа LONG
Таблицы с данными типа LONG (длинные),вероятно,потребуют большие размеры
буфера ввода.Не бойтесь увеличивать размер буфера ввода до 66,000 или более,
если Вы пытаетесь импортировать данные типа LONG и импорт прерван сообщением:
Сolumn value in Export file too large for column buffer
(Значение в столбце в экспорт-файле слишком велико для буфера столбца)
ЭКСПОРТ/ИМПОРТ БОЛЬШИХ ТАБЛИЦ
Предпочтительно создание по аналогии указателей пробелов и больших таблиц
перед их импортом; таким образом Вы знаете,что есть достаточно смежного (спло-
шного) пространства,актуально доступного в БД во время импорта.Затем,когда вы-
полняется импорт,Вы должны так же ответить да (YES) на такой запрос:
Ignore create errors due to object existence (Y/N)Y>
+ ПРИЛОЖЕНИЕ А.
CООБЩЕНИЯ ОБ ОШИБКАХ ОDL
Во время выполнения ODL могут встретиться три типа ошибок:
* ошибки в control-файле
* фатальные ошибки ODL
* ошибки Оракла.
Когда ошибка возникает во время обработки записи исходных данных,такая за-
пись записывается в BAD-файл.ODL завершит выполнение после некотого числа за-
писей,которые были записаны в BAD-файл.Когда проблема возникает во время обра-
ботки первой записи исходных данных,ODL завершит работу,не загрузив ни единой
записи.
ОШИБКИ В ОПЕРАТОРЕ СONTROL
Данные сообщения включают информацию для помощи в определении ошибки в этом
операторе.Существуют 3 формата,используемые как указано ниже:
1.Первый формат:
ON LINE # COLUMN #-
where is one of the following:
Number too large ( Количество слишком велико )
String too large ( Цепочка символов слишком большая )
Bad number ( Ошибочное номер )
Missing exponent ( Потерянная экспонента )
Identifier too large ( Слишком большой идентификатор )
Illegal character ( Запрещенный символ )
Quoted literal not ended ( Ограниченный литерал(литеральная
константа) не закончен )
2.Второй формат:
SYNTAX ERROR LINE # ON INPUT symbol-
где symbol (символ) определяет,где была обнаружена ошибка.
3.Третий формат:
: ON OR ABOUT LINE #-
где и - следующее:
Symbol Message
(символ) (сообщение)
------------ -------------------------------------------------
Field name is ambiguous (Имя поля неоднозначно)
Field is improperly aligned (Поле неправильно установлено)
Inconsistent rec field definition (Непоследовательное задание
поля записи)
Field location too negative (Расположение поля неправильно )
Bad location field expression ( Неправильное расположение содер-
жимого поля )
Inconsistent location field (Непоследовательное расположение поля)
Unsupported field length ( Запрещенная длина поля )