ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



                          НПКО  Мекомп
                          УТИЛИТЫ ОРАКЛА
                     РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
                            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 ( Запрещенная длина поля )
     Source from clause is missing (Источник из выражения отсутствует)
     Source length clause missing (Отсутствует выражение длины источ-
             ника )
     Multiple sources not supported (Многие источники не поддержива-
             ются )
     Bad source length clause ( Ошибочное выражение длины источника )
   Record too large for source (Запись слишком велика для источника)
   Multiple records not supported (Многие записи не поддерживаются )
      Table col/field count mismatch (Несоответствие в подсчете столбец/
             поле в таблице )
Multiple tables not supported (Многие таблицы не поддерживаются ) Not a record field ( Не является полем записи ) Undefined record field (Неопределенное поле записи) Previously defined ( Определено ранее ) Record name expected ( Ожидается имя записи ) Undefined record name ( Неопределенное имя записи ) ФАТАЛЬНЫЕ ОШИБКИ Фатальные ошибки встречаются из-за внутренних проблем или из-за ресурса,та- кого как память,которая исчерпана. ODL FATAL ERROR : где (сообщение) следующее: Out of parse stack space ( Превышено пространство стека грамматического разбора - parse stack space ) Out of heap space * ( Превышено общее простанство - heap space ) Out of table space * ( Превышено табличное пространство ) Сообщения об ошибках,которые м.б. исправлены предоставлением ODL большей памяти,помечены звездочкой (*).Существует набор фатальных ошибок,которые могут возникнуть,если другие ошибки существуют перед фатальной ошибкой.Такие ошибки обычно исчезают после исправления первоначальной ошибки.К ним относятся такие как: excsub : invalid kind ( ошибочный тип ) Illegal insert field definition ( запрещенная задание входного поля ) defsyn : unknown type ( неизвестный тип ) unreachable code - optional length ( нераспознанный код - выбранная длина ) unreachable code - default length (нераспознанный код - длина по умолчанию) ОШИБКИ ОРАКЛА Сообщения об ошибках Оракла имеют следующий формат: ERROR : где : call - имя подпрограммы интерфейса Оракла,в которой произошел сбой; message - сообщение об ошибке Оракла,как это приведено в "ORACLE error Messa- ges and Codes Manual"(Руководство по сообщениям и кодам ошибок Ора- кла). СЛОВАРЬ ТЕРМИНОВ bad file (BAD-файл): Файл,записываемый,когда ODL при выполнении обнаруживает любые записи,которые она не может ввести.Он записывается в том же фор- мате,что и исходный файл данных,но содержит только отвергнутые загруз- чиком данных записи. сontrol file (Control-файл): Файл,созданный пользователем для ввода в ODL.Его имя указывается в коммандной строке ODL,Control-файл содержит общие инструкции по загрузке данных.Он должен содержать 3 оператора: DEFINE RECORD,DEFINE SOURCE,FOR EACH RECORD...INSERT. data file (файл данных): Файл OC,который держит ничего иного кроме исходных данных для загрузки в таблицы Оракла посредством утилиты ODL. DEFINE RECORD statement (оператор DEFINE RECORD): Первая часть Control-файла, которая задает имя вводимой записи и каждому полю этой записи.Он,таким образом,задает тип данных и расположение для каждого поля. DEFINE SOURCE statement (оператор DEFINE SOURCE): Вторая часть Control-файла, которая задает имя вводимому файлу(ам) и их длину. Export (Экспорт): Утилита СУРБД Оракл,используемая для записи данных Оракла из БД в экспорт-файл. export file (экспорт-файл): Файл,созданный утилитой экспорт,который содержит данные,экспортированные во время определенного сеанса работы экспорта. В отличие от записанного в БД Оракл,файл затем независим от любой сис- темы Оракла и может,таким образом,быть импортированным в любую другую систему Оракла.Однако,он недолжен никогда ни редактироваться ни испо- льзоваться никакой другой программой Оракла кроме утилиты импорта. field location (расположение поля): Расположение каждого поля в вводимой запи- си,что помечается с использованием ключевого слова LOC для обозначения относительной позиции в записи. field type (тип поля): Тип данных поля ввода.Должно быть одним из cледующих: FLOAT,INTEGER,CHAR. FOR EACH statement (оператор FOR EACH): Третья часть Control-файла,которая яв- ляется вводимым оператором,что именует загружаемую таблицу и расплани- рует загружаемые столбцы по полям в исходных записях. full database mode (режим полной БД): Режим экспорта,доступный только для DBA (администратора БД),в котором почти вся БД экспортируется. GENSEQ: Определенная в Оракле функция,которую ODL использует во время выполне- ния для создания серии уникальных целых чисел для использования как ключи для этой таблицы.Cинтакс следующий: GENSEQ (initial_value, increment) Import (утилита импорт): Утилита СУРБД Оракл,используемая для чтения экспорт- файлов для того,чтобы записывать экспортированные назад в БД Оракл. import file (импорт-файл): Обычный экспорт-файл,который вот-вот будет импорти- рован. log file (Log-файл): Файл,записываемый ODL для суммированиятого,что произошло во время выполнения ODL.Он показывает,сколько записей было прочтено, пропущено,отвергнуто или введено.Имя заполняемого Log-файла вводится в командной строке ODL. ODL (от английского Oracle Data Loader - загрузчик данных Оракла): утилита,ис- пользуемая для загрузки файлов OC,содержащих исходные данные,в таблицы в БД Оракл. raw data file (файл исходных данных): Смотри data file (файл данных). record name (имя записи): Имя исходных записей в файле исходных данных,который указывается в операторе DEFINE RECORD Control-файла. selective import (выборочный(селективный) импорт): Основывается на способности утилиты импорт импортировать только порции информации,содержащейся в экспорт-файле. source name (имя источника): Символьное имя для устройства,содержащего файл(ы) исходных данных.Обычно,им будет либо FILE либо TAPE. source record (исходная запись): Запись в файле исходных данных,которая д.б. загружена в БД Оракл.Control-файл содержит планировку поля исходной записи по столбцам таблицы БД. tables mode (режим таблицы): Режим экспорта,в котором пользователь Оракла,вы- зывая утилиту экспорт,вводит имена определенных для загрузки таблиц. Если экспортирует DBA,тогда таблицы,относящиеся к любому пользователю, м.б. именованы.Любой другой пользователь может использовать только те таблицы,которыми он владеет.В этом режиме м.б. экспортированы только описания таблиц и табличные данные. users mode (режим пользователя): Режим экспорта,в котором экспортируются толь- ко объекты,относящиеся к пользователю под одним именем.Пока большинст- во объектов экспортируется в этом режиме,экранные формы и синонимы нет.

KOAP Open Portal 2000



Яндекс цитирования