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



                 EНПКО Мекомп при Минчермете СССРF
            E   SQL * LOADER     РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
                              Версия 1.0 F
                              EORACLE
                  Система управления реляционной БД F
E         SQL*Loader.Руководство пользователя.F
         ORACLE часть N.3606-V1.0
         Copyright 1986,1987  Корпорация Oracle,Белмонт,
         Калифорния,США.
         Все права сохраняются.Отпечатано в США.
         Дата: 13 июня 1987г.
         Авторы:   Рита Моран,Шелли Диммик
         Соавторы: Дэйв Симсон,Кен Джекобс
         Авторские права.
         Использование,копирование или изложение подчиняются  огра-
         ничениям,указанным в вашем контракте с Корпорацией ORACLE.
         Использование,копирование или изложение  со стороны прави-
         тельства подчиняются ограничениям,установленным в  подраз-
         деле (b)(3)(ii) авторских прав в области Технических Данных
         и Программного обеспечения в документе 48 CFR 252.227-7013.
                 Информация,содержащаяся в данном документе,м.б. из-
         менена без предупреждения.Если у вас возникли трудности с
         документацией,сообщите нам в письменном виде.Корпорация
         ORACLE не гарантирует,что в этой документации отсутствуют
         ошибки.
         ORACLE-зарегистрированная торговая марка Корпорации ORACLE.
         SQL*Loader - торговая марка Корпорации ORACLE.
              
                            E   СОДЕРЖАНИЕF
   EПредисловие    ...............................................F
                  Аудитория........................................
                  Как организовано это руководство.................
                  Как использовать это руководство.................
                  Публикации,связанные с этим документом..........
                  Соглашения,используемые в этом руководстве......
                  Ваши замечания приветствуются...................

 E  ГЛАВА 1        Введение......................................F
                  Что такое SQL*Loader............................
                  Установка SQL*Loader............................
                  Входная информация SQL*Loader...................
                    Управляющий файл (control file)...............
                    Данные........................................
                      Двоичный и символьный форматы...............
                      Фиксированный и переменный форматы..........
                      Логические и физические записи..............
                  Подготовка БД..........................
                  Выходная информация SQL*Loader..................15
                    Файл отчета (log file)........................15
                    Файл отброшенных записей (bad file)...........17
                    Файл пропущенных записей (discard file).......18

  E ГЛАВА 2        Примеры использования SQL*Loader................19F
                  Описание примеров...............................20
                    Пример 1: Загрузка данных переменной длины....21
                    Пример 2: Загрузка записей  фиксированного
                    формата.......................................24
                    Пример 3: Загрузка файла в свободном формате..28
                                      
                                -3-
                                    
                    Пример 4: Загрузка нескольких физических
                    записей как одной логической записи...........32
                    Пример 5: Загрузка данных нескольких таблиц...36

 E  ГЛАВА 3        Синтаксис командной строки......................42F
                  Команда SQLLОАD.................................43
                  Аргументы командной строки......................45
                  Использование ключевого слова OPTIONS
                  в управляющем файле.............................48
                  Сообщения,выдаваемые SQL*Loader................49

 E  ГЛАВА 4        Синтаксис управляющего файла....................50F
                  Создание управляющего файла.....................51
                  Синтаксис оператора LOAD DATA...................51
                    Указание файла данных.........................54
                      Имя файла...................................54
                      Режим чтения файла..........................54
                    Указание нескольких файлов данных.............55
                    Указание файла отброшенных записей............56
                    Указание файла пропущенных записей............57
                      Ограничение числа пропущенных записей.......59
                    Перезапись или добавление записей
                    в существующую таблицу........................59
                    Установка максимальной длины логических
                    записей.......................................60
                    Формирование логической записи из нескольких
                    физических....................................61
                    Определение таблиц и колонок..................64
                      Указание имен таблиц........................64
                      Выбор записей для загрузки..................65
                      Указание условия для поля...................65
                      Указание терминатора данных.................66
                      Определение колонок.........................66
                      Установка значения колонки к константе......67
                      Установка значения колонки к номеру записи
                      в файле данных..............................67
                      Формирование уникального последовательного
                      номера......................................68
                      Указание позиции поля данных................69
                      Указание длины данных.......................70
                      Указание типа входных данных................70
                      Тип данных CHAR.............................71
                      Тип данных DATE.............................71
                      Тип данных VARCHAR..........................71
                      Тип данных SMALLINT.........................72
                                      
                                -4-
                                    
                      Тип данных INTEGER..........................72
                      Тип данных FLOAT............................72
                      Тип данных DOUBLE...........................72
                      Тип данных DECIMAL..........................72
                      Тип данных числовой EXTERNAL................73
                      Тип данных GRAPHIC..........................73
                      Тип данных VARGRAPHIC.......................74
                      Определение символьных данных с
                      ограничителями..............................74
                      Определение пустых колонок..................75
                      Установка числовых колонок в ноль...........75
                    Указание начала данных в управляющем файле....76

  E ПРИЛОЖЕНИЕ А   Предупреждения и сообщения об
                  ошибках SQL*Loader..............................77F
                  Коды 100-199: Ошибки командной строки...........78
                  Коды 200-299: DB2,синтаксические ошибки и
                  информационные сообщения........................79
                  Коды 300-399: Синтаксические ошибки
                  в управляющем файле.............................79
                  Коды 400-499: Логические ошибки
                  (синтаксис верный)..............................80
                  Коды 500-599: Ошибки при открытии и чтении
                  файлов..........................................80
                  Коды 600-699: Ошибки,возникшие при загрузке....81
                  Коды 620-639: Ошибки формата....................81
                  Коды 640-699: Неисправимые ошибки ORACLE........82
                  Коды 700-799: Фатальные ошибки..................82

 E  ПРИЛОЖЕНИЕ В   Замечания для пользователей утилиты загрузки
                  БД DB2 и DXT...........................83F
                  Дополнительные возможности SQL*Loader по
                  сравнению с утилитой загрузки DB2...............
                  Использование опции RESUME из DB2...............
                  Обеспечение совместимости.......................
                      Оператор LOG................................
                      Оператор WORKDDN............................
                      Операторы SORTDEVT и SORTNUM................
                      Cпецификация DISCARD........................
                  Ограничения.....................................
                      Оператор FORMAT.............................
                      Оператор PART...............................
                      Опция SQL/DS................................
                      Графические строки DBCS.....................
 E  ПРИЛОЖЕНИЕ С   Зарезервированные слова SQL*Loader............F
   EИндекс         ..............................................F

                E                  ПРЕДИСЛОВИЕ F
                  Это руководство объясняет,как использовать
                  SQL*Loader,инструмент для загрузки данных из
                  внешних файлов в таблицы БД ORACLE.
                  SQL*Loader обрабатывает широкое разнообразие
                  форматов входных файлов и дает вам возможность
                  управлять загрузкой записей в таблицы ORACLE.
                            Это руководство объясняет использование
                  SQL*Loader после того,как он  установлен.
                  Инструкции по  установке SQL*Loader отсутс-
                  твуют в этом руководстве; они  приведены  в
                  руководствах по  установке  и использованию
                  для каждой отдельной ОС,таких как
                  Установка и  руководство  пользователя  для
                  DEC VAX/VMS или
                  Установка и  руководство  пользователя  для
                  IBM VM/SP.
                  SQL*Loader используется  вместо  Загрузчика
                  Данных ORACLE (ODL) корпорации ORACLE.
             
   EАудиторияF            Руководство пользователя SQL*Loader предназ-
                        начено для тех,кто желает загрузить данные
                        в таблицы БД ORACLE,используя
                        SQL*Loader.Оно дает введение в понятие
                        загрузки данных для тех,кто не использовал
                        загрузчик данных ранее,а также ссылочный
                        материал для более опытных пользователей.
                        Представлены также многочисленные примеры.
                               Предполагается,что пользователь знаком с:
                        * ОС на его компьютере
                        * ее системой управления файлами и записями
                        * языком SQL
                        * таблицами,которые д.б. загружены.
                        
   EКак организованоF     Эта книга содержит несколько глав и приложений.
   Eэто руководство F
                        EГлава 1:F Введение
                        Описан продукт SQL*Loader и его возможности.
                        Вводит понятие загрузки данных.
                        EГлава 2:F Примеры использования SQL*Loader
                        Представлены примеры для изучения наиболее
                        часто встречающихся ситуаций при загрузке
                        данных,таких как загрузка файлов данных
                        фиксированного формата,загрузка входных
                        файлов в свободном формате и загрузка нес-
                        кольких таблиц за один прогон.
                        EГлава 3:F Синтаксис командной строки
                        Описан синтаксис командной строки,исполь-
                        зуемый SQL*Loader.
                        EГлава 4:F Синтаксис управляющего файла
                        Описан синтаксис управляющего файла,ис-
                        пользуемый SQL*Loader.
                        EПриложение А:F Предупреждения и сообщения об
                        ошибках SQL*Loader
                        Перечислены сообщения об ошибках SQL*Loader,
                        которые могут возникнуть,указаны возможные
                        причины и необходимые действия.
                        EПриложение В:F Замечания для пользователей
                        утилиты загрузки БД DB2 и DXT
                        Описаны различия в синтаксисе управляющих
                        файлов между SQL*Loader и DB2.
                        EПриложение С:F Зарезервированные слова
                        SQL*Loader
                        В этом приложении перечислены слова,заре-
                        зервированные для использования продуктами
                        ORACLE RDBMS и SQL*Loader.
                                   
   EКак использоватьF     Если вы раньше не работали с загрузчиками
   Eэто руководство F     данных,начните со введения в главе 1,а за-
                        тем изучите примеры в главе 2.Эти две гла-
                        вы дают хорошее введение в понятие загрузки
                        данных,включающее несколько примеров.
                        Когда вы почувствуете себя достаточно уве-
                        ренно,вы можете обратиться к главам 3 и 4
                        для изучения специальных вопросов использо-
                        вания SQL*Loader.
                        Если вы уже знакомы с загрузчиком данных
                        ORACLE (ODL) или другими загрузчиками,вы
                        можете научиться использовать SQL*Loader,
                        посмотрев синтаксис командной строки и уп-
                        равляющего файла,представленный в главах
                        3 и 4.
                        Примеры управляющих файлов и файлов данных,
                        соответствующие примерам в этой книге,на-
                        ходятся на дистрибутивном носителе; вы мо-
                        жете использовать их для небольшой практики.
                        Обратите внимание на файлы:
                   CASE1.CTL  (этот управляющий файл содержит также
                              и данные)
                   CASE2.CTL  CASE2.DAT
                   CASE3.CTL  (этот управляющий файл содержит также
                              и данные)
                   CASE4.CTL  CASE4.DAT
                   CASE5.CTL  CASE5.DAT
                                 Заметьте,что это руководство не содержит
                        инструкций по установке,так как они раз-
                        личны для разных операционных систем.Обра-
                        титесь,пожалуйста,к вашему руководству по
                        установке,чтобы узнать,как установить
                        SQL*Loader.Если существуют специфические
                        особенности ОС,они опи-
                        саны в руководстве по установке и использо-
                        ванию ORACLE.
             
   EПубликации,   F     Кроме этого руководства при работе вы може-
   Eсвязанные с этимF     те пожелать обратиться к следующим докумен-
   Eдокументом      F     там,опубликованным Корпорацией ORACLE.
                        Вы автоматически получите заглавие,которое
                        отошлет вас к необходимому продукту.Вам не
                        обязательно нужны все из перечисленных до-
                        кументов.
                        Документация по ORACLE RDBMS включает:
                        * ORACLE RDBMS,ORACLE Часть N.3001
                        * ORACLE Руководство администратора базы
                          данных,ORACLE Часть N.3601
                        * Сообщения об ошибках и коды,
                          ORACLE Часть N.3605
                        * ORACLE Руководство пользователя
                          по утилитам,ORACLE Часть N.3602
                                 Предусмотрены также руководства по установ-
                        ке и использованию для каждой OC,такие как:
                        * ORACLE для DEC VAX/VMS Установка и руко-
                        водство пользователя,ORACLE Часть N.1001
                        * ORACLE для IBM VM/SP Установка и руко-
                        водство пользователя,ORACLE Часть N.1003
                        
   EСоглашения,F         Следующие соглашения используются в этом
   EиспользуемыеF         руководстве:
   Eв этом      F         EКоманды:F Заглавные буквы используются,что-
   Eруководстве F         бы указать текст,который должен быть вве-
                        ден точно также,как показано.Зарезервиро-
                        ванные слова и ключевые слова не могут быть
                        использованы как имена таблиц или колонок,
                        если вы не заключаете их в двойные кавычки.
                        
                          SQLLOAD  SCOTT/TIGER  MAY.CTL  MAY.LOG
                        
                        EПеременные:F Переменные,вместо которых
                        пользователь должен подставить соответству-
                        ющие значения,указываются строчными буква-
                        ми.Круглые скобки должны вводиться как
                        указано:
                        
                          [GRAPHIC (length)]
                        
                        EАльтернативные значения:F Альтернативные
                        значения разделяются вертикальной чертой.
                        Они заключены в фигурные скобки,если тре-
                        буется выбрать одно значение,или в квад-
                        ратные скобки,если значение м.б.
                        опущено.
                                    
                        EТребуемые значения:F Требуемые значения зак-
                        лючены в фигурные скобки.Вы можете выбрать
                        один из вариантов значения.
                        
                          {BADFILE | BADDN}  filename
                        
                        EОпциональные значения:F Опциональные значения
                        заключены в квадратные скобки.
                        
                          [GRAPHIC (length)]
                        
                        EЗначения с повторением:F Многоточие указыва-
                        ет на произвольное число однотипных значе-
                        ний.
                        
                          [ columnspec,columnspec...]
                        
   EВаши замечанияF       Технический персонал Корпорации ORACLE
   EприветствуютсяF       приветствует ваши замечания.При создании,
                        пересмотре и оценке наших публикаций ваше
                        мнение - это наиболее важная часть информа-
                        ции,которую мы получаем.Пожалуйста,
                        используйте "Форму читательского отзыва",
                        чтобы сообщить нам,что вам нравится и что
                        не нравится в этом руководстве.Вы можете
                        также связаться с нами по следующему адресу:
                         
                        ORACLE Corporation
                        ATTN: SQL*Loader Product Manager
                        20 Davis Drive
                        Belmont,California 94002
                        (415)598-8000

+               E                  ГЛАВА 1
                                     ВВЕДЕНИЕ F
                  Эта глава описывает основные концепции загрузки
                  данных в БД ORACLE при помощи программ-
                  ного продукта ORACLE под названием SQL*Loader.
                  В частности,она описывает входную информацию,
                  которую вы должны подготовить для SQL*Loader,и
                  выходную информацию,формируемую при его выпол-
                  нении.

E   ЧТО ТАКОЕ SQL*LOADER? F
                  SQL*Loader - это продукт для пересылки данных из
                  внешних файлов в таблицы БД ORACLE.Он
                  имеет много возможностей,обеспеченных в Утилите
                  Загрузки DB2 Корпорации IBM,а также включает ряд
                  дополнительных возможностей,расширяющих его мощ-
                  ность и широту применения.
                  SQL*Loader загружает данные в различных форма-
                  тах,выполняет фильтрацию (выборочную загрузку за-
                  писей в зависимости от значений данных),и может
                  загружать несколько таблиц одновременно.Во время
                  выполнения SQL*Loader формирует детальный файл от-
                  чета со статистикой загрузки и может также созда-
                  вать файл отброшенных записей (записи,отброшенные
                  из-за ошибок в данных) и файл пропущенных записей
                  (записи,которые не соответствуют критерию выбо-
                  ра).Вы можете управлять загрузкой при помощи
                  нескольких опций.
    SQL*Loader может:
                  * загружать данные из нескольких файлов данных
                    различных типов
                  * обрабатывать записи фиксированного формата,сво-
                    бодного формата,а также записи переменной длины
                  * поддерживать широкий спектр типов данных,вклю-
                    чая DATE,BINARY,и PACKED DECIMAL
                  * загружать несколько таблиц за один прогон; заг-
                    ружать выбранные строки в каждую таблицу
                  * комбинировать несколько физических записей в
                    одну логическую запись
                  * обрабатывать одну физическую запись как несколь-
                    ко логических записей
                  * генерировать уникальное последовательное значе-
                    ние ключа в указанной колонке
                  * использовать систему управления файлами или за-
                    писями вашей ОС для доступа к
                    файлам данных
                  * загружать данные с диска или ленты
                  * обеспечить полный контроль и диагностику ошибок,
                    что позволяет легко выверить и загрузить все
                    данные
                  * использовать управляющий файл,совместимый с
                    файлом загрузчика DB2 Корпорации IBM (включая
                    файл,создаваемый утилитой DXT (IBM),которая
                    выгружает данные из различных источников).
                            SQL*Loader более многосторонний,чем Загрузчик
                  Данных ORACLE (ODL),который использовался в пре-
                  дыдущих версиях ORACLE RDBMS.SQL*Loader включает
                  в себя все возможности ODL,и в будущем полностью
                  заменит его.
                                   
E   УСТАНОВКА SQL*LOADER F
                  Это руководство не содержит инcтрукций по установ-
                  ке,так как они различны для разных OC.Обратитесь,пожалуйста,
                  к вашему руководс-
                  тву по установке,чтобы узнать,как установить
                  SQL*Loader.
                  
E   ВХОДНАЯ ИНФОРМАЦИЯ SQL*LOADER F
                  Чтобы загрузить данные из внешних файлов в БД
                  ORACLE,вы должны подготовить для SQL*Loader
                  входную информацию 2 типов: сами данные и уп-
                  равляющую информацию,описывающую,как выполнять
                  загрузку.
                  Данные,загружаемые в БД ORACLE,должны
                  находиться в файлах на диске или ленте.Эти файлы
                  данных SQL*Loader должны интерпретироваться неко-
                  торым образом при загрузке.Информация для этого
                  находится в управляющем файле.
                  
E   Управляющий файл (control file)   F
                  Вы должны подготовить как вход к SQL*Loader файл,
                  который называется управляющим файлом.Назначение
                  этого файла - описать данные,которые д.б.
                  загружены.Например,он описывает:
                  * имена файлов данных
                  * формат файлов данных
                  * поля данных в этих файлах
                  * как загружать данные в таблицы (какие таблицы и
                    колонки д.б. загружены).
                        Некоторая информация является обязательной (где
                  найти данные и как они соответствуют таблицам БД
                  ),однако имеется также много опций для опи-
                  сания и манипулирования данными.Например,инс-
                  трукции могут включать указание,как форматировать
                  или фильтровать данные,или как генерировать уни-
                  кальный номер ID.
                  Данные и управляющая информация могут быть подго-
                  товлены в отдельных файлах или вместе в одном и
                  том же файле.
                  SQL*Loader использует язык загрузки данных,совмес-
                  тимый вверх с языком Загрузчика DB2 Корпорации IBM.
                  Если вы имеете управляющий файл Загрузчика DB2,вы
                  можете также использовать его для SQL*Loader;
                  см.Приложение В для отличий в синтаксисе.
 
E   Данные F
                  Загружаемые данные могут существовать в нескольких
                  форматах.Они обычно читаются из одного или нес-
                  кольких файлов данных,но данные можно также вклю-
                  чить после управляющей информации в управляющий
                  файл.
                  
E   Двоичный и F    Загружаемые данные могут иметь 2-й формат или
E   символьный F    символьный формат.Двоичный формат используется
E   форматы    F    при хранении в памяти компьютера.Человек не может
                  смотреть на 2-й файл и читать его содержание
                  непосредственно,как он читает символьный файл.
                  Символьный формат также называют внешним (external)
                  форматом.
                  Данные двоичного и символьного форматов могут на-
                  ходиться в файлах как фиксированного,так и пере-
                  менного форматов.
                  
E   ФиксированныйF  Записи данных могут иметь фиксированный или пере-
E   и переменный F  менный формат.При фиксированном формате данные
E   форматы      F  содержатся в записях,которые все имеют одинаковый
                  (фиксированный) формат.Это означает,что записи
                  имеют одинаковую фиксированную длину,а поля дан-
                  ных в этих записях имеют одинаковые длину,тип и
                  позицию.Например,колонки 1-6 могут содержать
                  символьную переменную,колонки 7-10 могут содер-
                  жать целое и так далее,одинаково во всех записях.
                  Для обработки поля фиксированной длины использо-
                  вать рациональнее,чем поля переменной длины.
                          При переменном формате (его иногда называют "сво-
                  бодный формат") каждая запись имеет длину,необхо-
                  димую,чтобы вместить данные.Так,в случае симво-
                  льных данных,если первое значение короче второго,
                  то первая запись будет короче.Кроме того,типы
                  данных в различных записях могут отличаться.Одна
                  запись может содержать символьную строку,другая -
                  семь целых значений,третья три десятичных и одно
                  плавающее и так далее.Операционная система ис-
                  пользует терминальный символ записи (такой как
                  "новая строка"),чтобы различить,где заканчивают-
                  ся записи переменной длины.
                  Данные в свободном формате представляются двумя
                  способами: с ограничителями и разделителями.Дан-
                  ные с ограничителями ограничены с2сторон спе-
                  циальным символом,возможно апострофом:
                  
                     "BUNKY"  "EEMO"
                  
                  Данные с разделителями отделяются друг от друга
                  специальным символом,возможно,запятой:
                  
                     1,1,2,3,5,8,13,...
                  
E   Логические иF   Последнее различие касается разницы между логичес-
E   физические  F   кими и физическими записями.Мы ссылаемся к записи
E   записи      F   или линии в файле (фиксированной или переменной
                  длины) как к физической записи.Системы управления
                  файлами/записями,зависящие от OC
                  (например RMS в DEC или SAM в IBM) возвращают
                  физические записи.
                  Логические записи,с другой стороны,соответствуют
                  строке в таблице БД.Иногда логические и
                  физические записи эквивалентны,например,когда
                  загружаются только несколько коротких столбцов.
                  Однако иногда несколько физических записей д.б. объединены,
                  чтобы получить одну логическую
                  запись.Например,вы используете файл,содержащий
                  24 десятисимвольных столбца в формате 80-символь-
                  ных записей фиксированной длины; в этом случае 3
                  физические записи представляют одну логическую за-
                  пись.
                           В SQL*Loader вы можете собрать логическую запись
                  из нескольких физических,используя поле продолже-
                  ния.Физические записи объединяются в одну логи-
                  ческую запись,если некоторое условие для поля
                  продолжения верно.Вы можете указать,что логичес-
                  кая запись д.б. получена из нескольких фи-
                  зических записей следующими способами:
                  * n физических записей д.б. всегда сцепле-
                    ны,чтобы создать одну логическую запись (поле
                    продолжения не используется)
                  
                  * физические записи сцепляются,если поле продол-
                    жения содержит заданную строку (или в другом ва-
                    рианте "не равно" заданной строке)
                  * физические записи объединяются,если они содержат
                    заданный символ в последней непустой позиции.
                                   
E   ПОДГОТОВКА БАЗЫ ДАННЫХ F
                  Таблицы,в которые загружаются данные,должны уже
                  существовать в БД ORACLE.Нет специальных
                  требований к этим таблицам; они м.б. класте-
                  рированными или индексированными,они м.б. в
                  действительности представлениями (view),для кото-
                  рых установлены полномочия INSERT.Заметьте,что
                  загрузка обычно выполняется быстрее,если индексы
                  создаются после загрузки.
                  Таблицы могут уже иметь данные или быть пустыми.
                                   
E   ВЫХОДНАЯ ИНФОРМАЦИЯ SQL*LOADER  F
                  Когда SQL*Loader загружает данные,он может созда-
                  вать до 3 файлов,как описано ниже.
                         
E   Файл отчета (log file) F
                  Когда SQL*Loader начинает выполняться,он создает
                  файл отчета. Если невозможно создать этот файл,
                  выполненние прекращается.Файл  отчета  содержит
                  детальную сводку  выполнения, состоящую из нес-
                  кольких опций,как описано ниже:
   EЗаголовок:F
     * дата прогонна
                  * номер версии программного продукта

  EГлобальная информация:F
 * имена всех входных/выходных файлов
                  * эхо аргументов командной строки
                  * информация о символе продолжения
                  
  EИнформация таблицыF повторяется для каждой загружаемой таблицы:
                  * имя
                  * условия загрузки,если имеются (или все записи,
                    или предложение WHEN,используемое как критерий
                    загрузки)
                  * одно из предложений INSERT,APPEND,REPLACE
                  * информация колонок:
                     - позиция,длина,тип данных и ограничитель ко-
                       лонки,если она имеется в файле данных
                     - RECNUM,SEQUENCE или CONSTANT,если указано
                     - DEFAULTIF или NULLIF,если указано
                  
 EИнформация файла данныхF помещается в отчет только
                  для тех файлов данных,которые имеют ошибки дан-
                  ных:
                  * SQL*Loader/ORACLE ошибки для записей с ошибоч-
                    ными данными
                  * пропущенные записи

 EИнформация о загрузке таблицыF повторяется для каж-
                  дой загружаемой таблицы:
                  * количество загруженных строк
                  * количество строк,которые должны были
                    загружаться,но отброшены из-за ошибок данных
                  * количество пропущенных строк,не удовлетворяющих
                    условию WHEN
                  * количество строк,для которых все используемые
                    поля были пустыми
                  
                  EИтоговая статистикаF
                  * используемое пространство
                     - для 2-х массивов (действительно исполь-
                       зуемое по сравнению с указанным в BINDSIZE)
                     - для другой служебной информации (требуется
                       всегда и не зависит от BINDSIZE)
                  * совокупная статистика загрузки.Для каждого фай-
                    ла данных содержит количество записей,которые
                    были
                     - пропущены до обработки
                     - прочитаны
                     - отброшены
                     - пропущены при обработке
                  * время начала и окончания прогона
                  * полное время выполнения
                  * полное время процессора (включает время всех
                    операций ввода-вывода,но может не включать фо-
                    новое время процессора ORACLE).
                              Большая часть этой информации выдается при успеш-
                  ном выполнении SQL*Loader.Однако обнаруженные
                  ошибки приводят к выдаче различных порций отчета.
                  Например,если сам файл отчета не м.б. соз-
                  дан,выполнение SQL*Loader прекращается.Ошибки,
                  обнаруженные при обработке управляющего файла,бу-
                  дут отмечены в файле отчета,обнаруженные в ко-
                  мандной строке - нет.
                                    
E   Файл отброшенных записей (bad file) F
                  При выполнении SQL*Loader создает файл отброшенных
                  записей.Этот файл содержит все записи,которые
                  SQL*Loader пытался загрузить,но не смог.Эти за-
                  писи называются отброшенными записями.
                  
   Запись отбрасывается,если:
                  * при загрузке записи возникает ошибка ORACLE
                    (например,неверные данные для некоторого типа
                    данных,дублируется значение в уникальном индек-
                    се,пустое значение в поле NOT NULL)
                  * SQL*Loader не может определить,правильные дан-
                    ные или нет.Так,невозможно определить,удов-
                    летворяет ли запись условию WHEN в случае
                    несбалансированных ограничителей.Например,если
                    используются ограничители - двойные кавычки,то
                    SQL*Loader пропустит запись
                                                    ,"U G,
                    
                  Если же условие WHEN м.б. проверено даже в
                  случае несбалансированных ограничителей,данные
                  будут соответственно либо загружены,либо отброше-
                  ны.
                  Если запись отброшена при загрузке,то никакая
                  часть этой записи не будет загружена в какую-либо
                  таблицу.Например,если данные из одной записи
                  д.б. вставлены в несколько таблиц,несколь-
                  ко операций выполнилось успешно,а одна заверши-
                  лась аварийно,то для всех операций вставки из
                  этой записи будет выполнен откат.Запись помещает-
                  ся в файл отброшенных записей,где она м.б.
                  исправлена и при необходимости загружена повторно.
                  Предыдущие операции вставки из записи,не содержа-
                  щей ошибок,не имеют последствий.
                  Файл отчета содержит сообщения об ошибках ORACLE
                  для каждой отброшенной записи.
                  SQL*Loader всегда создает файл отброшенных запи-
                  сей.Он м.б. пустым,если ни одной записи не
                  отброшено.Он записывается в том же формате,что и
                  файл данных,поэтому отброшенные данные после ре-
                  дактирования или необходимого исправления м.б. загружены с
                  тем же управляющим файлом.
                                    
E   Файл пропущенных записей (discard file) F
                  При выполнении SQL*Loader может создавать файл
                  пропущенных записей.Этот файл создается,если вы
                  укажете одну из 2 опций в командной строке:
                  
                     DISCARD = filename
                     DISCARDMAX = nn
                  
                  или если вы используете одну из опций в управляю-
                  щем файле:
                  
                     DISCARDFILE  filename
                     DISCARDDN  filename
                     DISCARDS  n
                     DISCARDMAX  n
                  
                  Итак,файл пропущенных записей создается,если вы
                  явно потребуете это (указав имя файла),или вы не-
                  явно потребуете,указав,например,максимальное
                  количество записей для него.В последнем случае
                  имя файла пропущенных записей совпадает с именем
                  файла данных,но принимается расширение имени фай-
                  ла DSC.
                  
                  Записи помещаются в файл пропущенных записей,
                  если:
                  * ни одно условие WHEN не выполняется для ка-
                    кой-либо загружаемой таблицы
                  * условие WHEN выполняется для таблицы,но все по-
                    ля пустые,либо из-за NULLIF,либо как
                    отсутствующие.
                            Если данные из записи загружены в таблицу,эта за-
                  пись не помещается в файл пропущенных записей.
                  Файл пропущенных записей записывается в том же
                  формате,что и файл данных,поэтому пропущенные
                  данные после редактирования и исправления м.б. загружены с
                  тем же управляющим файлом.

+                E                  ГЛАВА 2
                        ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ SQL*LOADER F
                  Эти примеры демонстрируют некоторые возможности
                  SQL*Loader.Примеры расположены по возрастанию
                  сложности.Вы можете получить практику работы с
                  SQL*Loader,используя файлы,находящиеся на дист-
                  рибутивном носителе для SQL*Loader
                                                       
E   ОПИСАНИЕ ПРИМЕРОВ  F
                  Приведены следующие примеры:
                  
                  EПример 1:F Загрузка записей переменной длины,в ко-
                  торых поля разделены запятой и м.б. заключе-
                  ны в кавычки.Данные находятся в конце управляюще-
                  го файла.
                  EПример 2:F Загрузка файла данных с записями фикси-
                  рованной длины и фиксированного формата без
                  дополнительных специальных возможностей.
                  EПример 3:F Загрузка данных из записей переменной
                  длины в свободном формате и с порядковыми номера-
                  ми.Данные находятся в конце управляющего файла.
                  EПример 4:F Объединение нескольких физических запи-
                  сей в одну логическую запись,соответствующую од-
                  ной строке БД.
                  EПример 5:F Загрузка данных в несколько таблиц за
                  один прогон.
                            Дистрибутивный носитель для SQL*Loader содержит
                  один или два файла для каждого из примеров: управ-
                  ляющий файл и файл данных.Название этих файлов
                  CASE1.CTL и CASE1.DAT и так далее для каждого при-
                  мера.
                  Эти примеры используют таблицы EMP и DEPT стан-
                  дартной демонстрационной БД ORACLE.
                  Имя/пароль владельца - SCOTT/TIGER.Ниже приведены
                  операторы определения таблиц.
                  
                     CREATE TABLE EMP
                        (EMPNO      NUMBER(4)  NOT NULL,
                        ENAME       CHAR(10),
                        JOB         CHAR(9),
                        MGR         NUMBER(4),
                        HIREDATE    DATE,
                        SAL         NUMBER(7,2),
                        COMM        NUMBER(7,2),
                        DEPTNO      NUMBER(2))
                        
                     CREATE TABLE DEPT
                       (DEPTNO     NUMBER(2),
                        DNAME       CHAR(14),
                        LOC         CHAR(13))
        
                  В некоторых примерах будут добавлены дополнитель-
                  ные колонки для иллюстрации возможностей.
                                                       
E   ПРИМЕР 1: ЗАГРУЗКА ДАННЫХ ПЕРЕМЕННОЙ ДЛИНЫ F
                  Пример 1 демонстрирует:
                  * простой управляющий файл,идентифицирующий одну
                    таблицу и 3 колонки для загрузки
                  * данные,включенные в управляющий файл (так что
                    не нужен отдельный файл данных)
                  * загрузку полей и записей переменной длины.
                        В приведенном ниже листинге управляющего файла
                  (CASE1.CTL) числа слева Eотсутствуют в реальном
                  файлеF и являются номерами в расположенных ниже за-
                  мечаниях.Не включайте эти числа в подготавливае-
                  мый управляющий файл.
   і                                                               і
   і  1    LOAD DATA                                               і
   і  2    INFILE *                                                і
   і  3    INTO TABLE DEPT                                         і
   і  4    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'     і
   і  5    (DEPTNO,DNAME,LOC)                                    і
   і  6    BEGINDATA                                               і
   і       12,RESEARCH,"SARATOGA"                                  і
   і       10,"ACCOUNTING",CLEVELAND                               і
   і       11,"ART",SALEM                                          і
   і       13,FINANCE,"BOSTON"                                     і
   і       21,"SALES",PHILA.                                     і
   і       22,"SALES",ROCHESTER                                    і
   і       42,"INT'L","SAN FRAN"                                   і
    
                  EЗамечания:F
                  1.Оператор LOAD DATA требуется в начале управля-
                     ющего файла.
                  2.Данные расположены в управляющем файле.
                  3.Оператор INTO TABLE требуется,чтобы указать
                     имя загружаемой таблицы (DEPT),по умолчанию
                     таблица д.б. пустой,чтобы SQL*Loader
                     мог вставлять записи.
                  4.Данные будут разделяться запятой и могут также
                     быть заключены в кавычки.Тип данных для всех
                     полей по умолчанию CHAR.
                  5.Имена загружаемых колонок заключены в круглые
                     скобки.
                  6.Указывает начало данных.
                                                       
                  SQL*Loader м.б. вызван следующим образом:
                     SQLLOAD   SCOTT/TIGER   CASE1.CTL
                  
                  При выполнении SQL*Loader загружается таблица DEPT
                  и создается 2 файла: файл отчета и файл отбро-
                  шенных записей (отбрасываются записи или нет,
                  SQL*Loader все равно создает этот файл).
                  Ниже приведен файл отчета.Числа слева являются
                  номерами расположенных ниже замечаний; они не по-
                  являются в действительном файле отчета.
   і                                                               і
   і    Control File:   case1.ctl                                  і
   і    Data file:      *                                          і
   і    Read Mode:      System Record                              і
   і    Bad File:       case1.bad                                  і
   і    Discard File:    none specified                            і
   і                                                               і
   і    Number to load: ALL                                        і
   і    Number to skip: 0                                          і
   і    Errors allowed: 50                                         і
   і    Bind array:     64 row,maximum of 65336 bytes             і
   і    Record Length:  726 (Buffer size allocated per logical recoі
   і    Continuation:    none specified                            і
   і                                                               і
   і    Table DEPT,loaded from every logical record.            і
   і    Insert option in effect for this table: INSERT             і
   і                                                               і
   і    Column Name  Position  Len  Term  Encl  Datatype           і
   і    -----------  --------  ---  ----  ----  ----------         і
   і 1  DEPTNO          FIRST    *   ,  O(")  CHARACTER          і
   і    DNAME            NEXT    *   ,  O(")  CHARACTER          і
   і 2  LOC              NEXT    *  WHT   O(")  CHARACTER          і
   і                                                               і
   і    Table DEPT:                                                і
   і      7 Rows successfully loaded.                            і
   і      0 Rows not loaded due to data error.                   і
   і      0 Rows not loaded because all WHEN clauses were failed.і
   і      0 Rows not loaded because all fields were null.        і
   і                                                               і
   і    Space allocated for bind array:   46848 bytes (64 row)     і
   і    Space otherwise allocated:        48084 bytes              і
   і                                                               і
   і    Total logical record skipped:         0                    і
   і    Total logical record read             7                    і
   і    Total logical record rejected:        0                    і
   і    Total logical record discarded:       0                    і
   і                                                               і
   і    Run began on Tue Apr 14 11:31:53 1987                      і
   і    Run ended on Tue Apr 14 11:31:58 1987                      і
   і                                                               і
   і    Elapsed time was:     00:00:04.93                          і
   і    CPU time was:         00:00:00.73                          і
          
                  EЗамечания:F
                  1.Позиция и длина каждого поля в записи определя-
                     ется положением разделителей во входном файле.
                  2.WHT обозначает,что поле LOC заканчивается
                     символом WHITESPACE.Символы О(") обозначают
                     опциональное необязательное использование огра-
                     ничителей - кавычек.

E   ПРИМЕР 2: ЗАГРУЗКА ЗАПИСЕЙ ФИКСИРОВАННОГО ФОРМАТА F
                  Пример 2 демонстрирует:
                  * простой управляющий файл,идентифицирующий файл
                    данных,таблицу и колонки для загрузки
                  * отдельный файл данных
                  * файл с данными фиксированного формата.
                  В этом файле позиции полей и типы данных указаны
                  явно.
                               В приведенном ниже листинге управляющего файла
                  (CASE2.CTL) числа слева отсутствуют в реальном
                  файле и являются номерами в расположенных ниже за-
                  мечаниях.Не включайте эти числа в подготавливае-
                  мый управляющий файл.
   і                                                               і
   і  1    LOAD DATA                                               і
   і  2    INFILE CASE2.DAT                                        і
   і  3    INTO TABLE EMP                                          і
   і  4    ( EMPNO     POSITION(01:04) INTEGER EXTERNAL,         і
   і         NAME      POSITION(06:15) CHAR,                     і
   і         JOB       POSITION(17:25) CHAR,                     і
   і         MGR       POSITION(27:30) INTEGER EXTERNAL,         і
   і         SAL       POSITION(32:39) DECIMAL EXTERNAL,         і
   і         COMM      POSITION(41:48) DECIMAL EXTERNAL,         і
   і  5      DEPTNO    POSITION(50:51) INTEGER EXTERNAL)           і
                              
                  EЗамечания:F
                  1.Оператор LOAD DATA требуется в начале управляю-
                     щего файла.
                  2.Имя файла,содержащего данные,следует за клю-
                     чевым словом INFILE.
                  3.Оператор INTO TABLE требуется,чтобы указать
                     имя загружаемой таблицы.
                  4.В строках от 4 до 5 указано имя колонки,поло-
                     жение данных в файле,откуда загружается эта
                     колонка.Имена EMPNO,ENAME,JOB и т.д.- это
                     имена колонок в таблице EMP.Типы данных
                     (INTEGER EXTERNAL,CHAR,DECIMAL EXTERNAL) ука-
                     зывают тип данных поля в файле,а не соответс-
                     твующей колонки в таблице EMP.
                  5.Заметьте,что группа описаний полей заключена в
                     круглые скобки.
                     
                  Ниже приведено несколько строчек данных из файла
                  CASE2.DAT
   і                                                               і
   і       7782 CLARK   MANAGER     7839   2572.50           10    і
   і       7839 KING    PRESIDENT          5500.00           10    і
   і       7934 MILLER  CLERK       7782    920.00           10    і
   і       7566 JONES   MANAGER     7839   3123.75           20    і
   і       7499 ALLEN   SALESMAN    7698   1600.00   300.00  30    і
   і       7654 MARTIN  SALESMAN    7698   1312.50  1400.00  30    і
   і       7658 CHAN    ANALIST     7566   3450.00           20    і
                              
                  Пропущенным полям автоматически присваиваются пус-
                  тые значения.
                   
                  SQL*Loader м.б. вызван следующим образом:
                  
                     SQLLOAD   scott/tiger   case2.ctl  case2.log
                  
                  При выполнении SQL*Loader загружается таблица EMP
                  и создается два файла: файл отчета и файл отбро-
                  шенных записей (отбрасываются записи или нет,
                  SQL*Loader все равно создает этот файл).
                                           
                  Ниже приведен файл отчета.
   і                                                               і
   і    Control File:   case2.ctl                                  і
   і    Data File:      CASE2.DAT                                  і
   і    Read Mode:      System Record                              і
   і    Bad File:       case2.bad                                  і
   і    Discard File:    none specified                            і
   і                                                               і
   і    Number to load: ALL                                        і
   і    Number to skip: 0                                          і
   і    Errors allowed: 50                                         і
   і    Bind array:     64 row,maximum of 65336 bytes             і
   і    Record Length:  80 (Buffer size allocated per logical recоrі
   і    Continuation:    none specified                            і
   і                                                               і
   і    Table EMP,loaded from every logical record.             і
   і    Insert option in effect for this table: INSERT             і
   і                                                               і
   і    Column Name  Position  Len  Term  Encl  Datatype           і
   і    -----------  --------  ---  ----  ----  ----------         і
   і    EMPNO             1:4    4              CHARACTER          і
   і    ENAME            6:15   10              CHARACTER          і
   і    JOB             17:25    9              CHARACTER          і
   і    MGR             27:30    4              CHARACTER          і
   і    SAL             32:39    8              CHARACTER          і
   і    COMM            41:48    8              CHARACTER          і
   і    DEPTNO          50:51    2              CHARACTER          і
   і                                                               і
   і    Table EMP:                                                 і
   і     20 Rows successfully loaded.                            і
   і      0 Rows not loaded due to data error.                   і
   і      0 Rows not loaded because all WHEN clauses were failed.і
   і      0 Rows not loaded because all fields were null.        і
   і                                                               і
   і    Space allocated for bind array:    3776 bytes (64 row)     і
   і    Space otherwise allocated:         6740 bytes              і
   і                                                               і
   і    Total logical record skipped:         0                    і
   і    Total logical record read            20                    і
   і    Total logical record rejected:        0                    і
   і    Total logical record discarded:       0                    і
   і                                                               і
   і    Run began on Tue Apr 14 11:45:45 1987                      і
   і    Run ended on Tue Apr 14 11:45:52 1987                      і
   і                                                               і
   і    Elapsed time was:     00:00:07.18                          і
   і    CPU time was:         00:00:00.89                          і
                                     
E   ПРИМЕР 3: ЗАГРУЗКА ФАЙЛА В СВОБОДНОМ ФОРМАТЕ  F
                  Пример 3 демонстрирует:
                  * загрузку данных в формате потока с 2-я типами
                    данных: с ограничителями и разделителями
                  * загрузку календарных дат
                  * включение загруженных данных в сам управляющий
                    файл (данные отмечены ключевым словом BEGINDATA)
                  * использование функции SEQUENCE для генерации
                    уникальных ключей загружаемых данных
                  * использование APPEND для указания того,что
                    таблица м.б. непустой перед добавлением
                    новых записей
                  * использование комментариев в управляющем фай-
                    ле,выделенных 2-я минусами.
                           Этот управляющий файл загружает ту же таблицу,
                  что и в примере 2,но он также загружает 3 до-
                  полнительные колонки (HIREDATE,PROJNO,
                  LOADSEQ).Демонстрационная таблица EMP не содер-
                  жит колонок PROJNO и LOADSEQ,поэтому если вы
                  хотите протестировать этот контрольный файл,до-
                  бавьте эти колонки к таблице EMP командой
                  
                    ALTER TABLE EMP
                    ADD (PROJNO NUMBER,LOADSEQ NUMBER)
                  
                  Формат данных отличается от используемого в при-
                  мере 2.Некоторые данные заключены в кавычки,
                  некоторые отделены запятыми,а значения для
                  DEPTNO и PROJNO разделены двоеточием.
                           В приведенном ниже листинге управляющего файла
                  (CASE3.CTL) числа слева отсутствуют в реальном
                  файле и являются номерами в расположенных ниже
                  замечаниях.Не включайте эти числа в подготав-
                  ливаемый управляющий файл.
   і                                                               і
   і 1 -- Записи переменной длины с ограничителями и разделителями і
   і                                                               і
   і      LOAD DATA                                                і
   і 2    INFILE *                                                 і
   і 3    APPEND                                                   і
   і      INTO TABLE EMP                                           і
   і 4    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'      і
   і      (empno,ename,job,mgr,                               і
   і 5      hiredate DATE "DD-Month-YYYY",                       і
   і        sal,comm,                                           і
   і        deptno CHAR TERMINATED BY ':',                       і
   і        projno,                                              і
   і 6      loadseq SEQUENCE(MAX,1) )                              і
   і 7    BEGINDATA                                                і
   і 8    7782,"Clark","Manager",7839,09-June-1981,2572.50,,10:101 і
   і      7839,"King","President",,17-November-1981,5500.00,,10:102і
   і      7934,"Miller","Clerk",7782,23-January-1982,920.00,,10:102і
   і      7566,"Jones","Manager",7839,02-April-1981,3123.75,,20:101і
   і      7499,"Allen","Salesman",7698,20-February-1981,1600.00, і
   і   (продолжение)                     300.00,30:103            і
   і      7654,"Martin","Salesman",7698,28-September-1981,1312.50,і
   і   (продолжение)                      1400.00,3:103           і
   і      7658,"Chan","Analist",7566,03-May-1982,3450,,20:101      і
    
                  EЗамечания:F
                  1.Комментарии могут появляться везде,где угодно
                     в управляющем файле,но они не допускаются в
                     данных.Им предшествуют 2 тире,которые м.б. размещены в
                     любом месте строки.
                  2.Указывает,что данные расположены в конце уп-
                     равляющего файла.
                  3.Указывает,что данные можно загружать,даже ес-
                     ли таблица уже содержит строки.Не требуется,
                     чтобы таблица была пустой.
                  4.По умолчанию разделитель для полей данных - за-
                     пятая,и некоторые поля м.б. заключены в
                     двойные кавычки.
                  5.Данные,загружаемые в колонку HIREDATE,пред-
                     ставлены в формате DD-Month-YYYY
                  6.Функция SEQUENCE используется,чтобы сгенериро-
                     вать уникальное значение в колонке LOADSEQ.
                     Функция SEQUENCE находит текущее максимальное
                     значение колонки LOADSEQ и добавляет приращение
                     (1) к нему,чтобы получить значение для LOADSEQ
                     для каждой добавляемой строки.
                  7.Определяет конец управляющей информации и нача-
                     ло данных.
                  8.Заметьте,что хотя каждая физическая запись со-
                     ответствует одной логической записи,длина по-
                     лей различна и поэтому различна длина записей.
                     Заметьте также,что некоторые строки имеют
                     пустое значение для COMM.
                     
                  SQL*Loader м.б. вызван следующим образом:
                  
                  SQLLOAD SCOTT/TIGER ACCCE3.CTL CASE3.LOG CASE3.BAD
                    
                  Ниже приведена часть файла отчета.
   і                                                               і
   і    Control File:   case3.ctl                                  і
   і    Data File:      *                                          і
   і    Read Mode:      System Record                              і
   і    Bad File:       case3.bad                                  і
   і    Discard File:    none specified                            і
   і                                                               і
   і    Number to load: ALL                                        і
   і    Number to skip: 0                                          і
   і    Errors allowed: 50                                         і
   і    Bind array:     64 row,maximum of 65336 bytes             і
   і    Record Length:  2182 (Buffer size allocated per logical recі
   і    Continuation:    none specified                            і
   і                                                               і
   і    Table EMP,loaded from every logical record.             і
   і    Insert option in effect for this table: APPEND             і
   і                                                               і
   і    Column Name  Position  Len  Term  Encl  Datatype           і
   і    -----------  --------  ---  ----  ----  ----------         і
   і    empno           FIRST    *   ,  O(")  CHARACTER          і
   і    ename            NEXT    *   ,  O(")  CHARACTER          і
   і    job              NEXT    *   ,  O(")  CHARACTER          і
   і    mjr              NEXT    *   ,  O(")  CHARACTER          і
   і    hiredate         NEXT    *   ,  O(")  DATE DD-Month-YYYY і
   і    sal              NEXT    *   ,  O(")  CHARACTER          і
   і    comm             NEXT    *   ,  O(")  CHARACTER          і
   і    deptno           NEXT    *   :    O(")  CHARACTER          і
   і    projno           NEXT    *   ,  O(")  CHARACTER          і
   і    loadseq        SEQUENCE (MAX,1)                           і
   і                                                               і
   і    Table EMP:                                                 і
   і      7 Rows successfully loaded.                            і
   і      0 Rows not loaded due to data errors.                  і
   і      0 Rows not loaded because all WHEN clauses were failed.і
   і      0 Rows not loaded because all fields were null.        і
   і                                                               і
   і    Space allocated for bind array:   63800 bytes (29 row)     і
   і    Space otherwise allocated:        64163 bytes              і
   і                                                               і
   і    Total logical record skipped:         0                    і
   і    Total logical record read             7                    і
   і    Total logical record rejected:        0                    і
   і    Total logical record discarded:       0                    і

E   ПРИМЕР 4: ЗАГРУЗКА НЕСКОЛЬКИХ ФИЗИЧЕСКИХ ЗАПИСЕЙ КАК ОДНОЙ
             ЛОГИЧЕСКОЙ ЗАПИСИ F
                  Пример 4 демонстрирует:
                  * объединение нескольких физических записей в одну
                    логическую
                  * использование ключевого слова CONTINUEIF
                  * загрузку отрицательных чисел
                  * указание,что новые записи должны замещать ста-
                    рые,при помощи ключевого слова REPLACE
                  * определение файла пропущенных записей ключевым
                    словом DISCARDFILE
                  
                  * указание максимального количества пропущенных
                    записей ключевым словом DISCARDMAX
                  * отбрасывание записей из-за дублирования значений
                    уникального индекса
                  * отбрасывание записей из-за неправильных значений
                    данных
                  В приведенном ниже листинге управляющего файла
                  (CASE4.CTL) числа слева отсутствуют в реальном
                  файле и являются номерами в расположенных ниже за-
                  мечаниях.Не включайте эти числа в подготавливае-
                  мый управляющий файл.
   і                                                               і
   і       LOAD DATA                                               і
   і       INFILE case4.dat                                        і
   і  1    DISCARDFILE case4.dis                                   і
   і  2    DISCARDMAX 999                                          і
   і  3    REPLACE                                                 і
   і  4    CONTINUEIF THIS (1) = '*'                               і
   і                                                               і
   і       INTO TABLE EMP                                          і
   і       ( EMPNO     POSITION(02:05) INTEGER EXTERNAL,         і
   і         NAME      POSITION(07:16) CHAR,                     і
   і         JOB       POSITION(18:26) CHAR,                     і
   і         MGR       POSITION(28:31) INTEGER EXTERNAL,         і
   і         SAL       POSITION(33:40) DECIMAL EXTERNAL,         і
   і         COMM      POSITION(42:49) DECIMAL EXTERNAL,         і
   і         DEPTNO    POSITION(51:52) INTEGER EXTERNAL,         і
   і         HIREDATE  POSITION(53:61) INTEGER EXTERNAL)           і

                  EЗамечания:F
                  1.Определяет файл пропущенных записей с именем
                     CASE4.DIS.
                  2.Указывает,что допускается максимум 999 пропу-
                     щенных записей перед тем,как выполнение прек-
                     ращается (в практических целях допускается про-
                     пускать все записи).
                  3.Указывает,что если в загружаемой таблице
                     имеются данные,SQL*Loader должен удалить их
                     перед загрузкой новых данных.
                  4.Указывает,что если в позиции 1 текущей записи
                     находится звездочка,то следующая физическая
                     запись должна рассматриваться как продолжение
                     текущей записи для формирования одной логичес-
                     кой записи.Заметьте,что позиция 1 в каждой
                     физической записи должна либо содержать звез-
                     дочку,либо не содержать данные.
                  Ниже приведен файл данных,CASE4.DAT.Заметьте,
                  что звездочка расположена в первой позиции,а не-
                  видимый символ новой строки - в позиции 20 (после
                  "MA","PR" и т.д.).Заметьте,что CLARK имеет ко-
                  миссионные -10 и SQL*Loader загружает это значе-
                  ние,преобразуя его в форму отрицательного числа.
                  Последние две записи будут отброшены по двум при-
                  чинам.Если для колонки EMPNO создается уникальный
                  индекс,то запись для CHIN будет отброшена,так
                  как его EMPNO идентичен значению для CHAN.Если
                  EMPNO определена как NOT NULL,тогда запись для
                  CHEN будет отброшена,так как она не содержит зна-
                  чение EMPNO.
   і                                                               і
   і      *7782 CLARK       MA                                     і
   і       NAGER   7839   2572.50   -10    2512-NOV-85             і
   і      *7839 KING        PR                                     і
   і       ESIDENT        5500.00          2505-APR-83             і
   і      *7934 MILLER      CL                                     і
   і       ERK     7782    920.00          2508-MAY-80             і
   і      *7566 JONES       MA                                     і
   і       NAGER   7839   3123.75          2517-JUL-85             і
   і      *7499 ALLEN       SA                                     і
   і       LESMAN  7698   1600.00   300.00 25 3-JUN-84             і
   і      *7654 MARTIN      SA                                     і
   і       LESMAN  7698   1312.50  1400.00 2521-DEC-85             і
   і      *7658 CHAN        AN                                     і
   і       ALIST   7566   3450.00          2516-FEB-84             і
   і      *     CHEN        AN                                     і
   і       ALIST   7566   3450.00          2516-FEB-84             і
   і      *7658 CHIN        AN                                     і
   і       ALIST   7566   3450.00          2516-FEB-84             і
                     
                  Ниже приведен файл отчета.
   і                                                               і
   і    Control File:   case4.ctl                                  і
   і    Data File:      case4.dat                                  і
   і    Read Mode:      System Record                              і
   і    Bad File:       case4.bad                                  і
   і    Discard File:   case4.dsc (Allow 999 discards)             і
   і                                                               і
   і    Number to load: ALL                                        і
   і    Number to skip: 0                                          і
   і    Errors allowed: 50                                         і
   і    Bind array:     64 row,maximum of 65336 bytes             і
   і    Record Length:  80 (Buffer size allocated per logical recо і
   і    Continuation:   1:1 = '*',in current physical record      і
   і                                                               і
   і    Table EMP,loaded from every logical record.             і
   і    Insert option in effect for this table: REPLACE            і
   і                                                               і
   і    Column Name  Position  Len  Term  Encl  Datatype           і
   і    -----------  --------  ---  ----  ----  ----------         і
   і    EMPNO             1:4    4              CHARACTER          і
   і    ENAME            6:15   10              CHARACTER          і
   і    JOB              7:25    9              CHARACTER          і
   і    MGR              7:30    4              CHARACTER          і
   і    SAL              2:39    8              CHARACTER          і
   і    COMM             1:48    8              CHARACTER          і
   і    DEPTNO          50:51    2              CHARACTER          і
   і    HIREDATE        52:60    9              CHARACTER          і
   і                                                               і
   і    Rejected logical records and errors:                       і
   і                                                               і
   і    Data File case4.dat -                                      і
   і                                                               і
   і    Record 8: Rejected - Error on table EMP,column EMPNO.   і
   і    ORA-1400: mandatory (NOT NULL) column is missing or NULL   і
   і              during insert.                                 і
   і    Record 9: Rejected - Error on table EMP.                 і
   і    ORA-0001: duplicate value in index.                      і
   і                                                               і
   і    Table EMP:                                                 і
   і      7 Rows successfully loaded.                            і
   і      2 Rows not loaded due to data errors.                  і
   і      0 Rows not loaded because all WHEN clauses were failed.і
   і      0 Rows not loaded because all fields were null.        і
   і                                                               і
   і    Space allocated for bind array:   4480 bytes (64 row)      і
   і    Space otherwise allocated:        6740 bytes               і
   і                                                               і
   і    Total logical record skipped:         0                    і
   і    Total logical record read             9                    і
   і    Total logical record rejected:        2                    і
   і    Total logical record discarded:       0                    і
   і                                                               і
   і    Run began on Tue Apr 14 14:50:07 1987                      і
   і    Run ended on Tue Apr 14 14:50:15 1987                      і
   і                                                               і
   і    Elapsed time was:     00:00:07.96                          і
   і    CPU time was:         00:00:01.16                          і
                  
                  Далее следует файл отброшенных записей,содержащий
                  записи 8 и 9.(Файл пропущенных записей пуст).
   і                                                               і
   і      *     CHEN        AN                                     і
   і       ALIST   7566   3450.00          2516-FEB-84             і
   і      *7658 CHIN        AN                                     і
   і       ALIST   7566   3450.00          2516-FEB-84             і
       
E   ПРИМЕР 5: ЗАГРУЗКА ДАННЫХ НЕСКОЛЬКИХ ТАБЛИЦ  F
                  Пример 5 демонстрирует:
                  * загрузку нескольких таблиц (EMP и PROJ)
                  * использование SQL*Loader для обработки повторяю-
                    щихся групп в линейном файле и загрузки данных в
                    нормализованную таблицу (одна запись файла может
                    генерировать несколько строк БД)
                  * получение нескольких логических записей из каж-
                    дой физической записи
                  * загрузка одних и тех же полей в несколько таблиц
                  * использование предложения WHEN
                    В приведенном ниже листинге управляющего файла
                    числа слева отсутствуют в реальном файле и явля-
                    ются номерами в расположенных ниже замечаниях.
                    Не включайте эти числа в подготавливаемый управ-
                    ляющий файл.
   і                                                               і
   і  -- Загружает записи EMP из первых 23 символов                і
   і  -- Создает и загружает записи PROJ для каждого               і
   і  -- указанного PROJNO для каждого служащего                   і
   і                                                               і
   і       LOAD DATA                                               і
   і       INFILE CASE5.DAT                                        і
   і       BADFILE CASE5.BAD                                       і
   і       DISCARDFILE CASE5.DSC                                   і
   і  1    REPLACE                                                 і
   і                                                               і
   і  2    INTO TABLE EMP                                          і
   і         (EMPNO    POSITION(1:4)   INTEGER EXTERNAL,         і
   і          ENAME    POSITION(6:15)  CHAR,                     і
   і          DEPTNO   POSITION(17:18) CHAR,                     і
   і          MGR      POSITION(20:23) INTEGER EXTERNAL)           і
   і                                                               і
   і  2    INTO TABLE PROJ                                         і
   і       -- PROJ имеет две непустые колонки: EMPNO and PROJNO    і
   і  3    WHEN PROJNO != '   '                                    і
   і         (EMPNO    POSITION(1:4)    INTEGER EXTERNAL           і
   і          PROJNO   POSITION(25:27)  INTEGER EXTERNAL)-- 1-й    і
   і                                                               і
   і  2    INTO TABLE PROJ                                         і
   і  4    WHEN PROJNO != '   '                                    і
   і         (EMPNO    POSITION(1:4)    INTEGER EXTERNAL           і
   і  4       PROJNO   POSITION(29:31)  INTEGER EXTERNAL)-- 2-й    і
   і                                                               і
   і  2    INTO TABLE PROJ                                         і
   і  5    WHEN PROJNO != '   '                                    і
   і         (EMPNO    POSITION(1:4)    INTEGER EXTERNAL           і
   і  5       PROJNO   POSITION(33:35)  INTEGER EXTERNAL)-- 3-й    і
                  
                  EЗамечания:F
                  1.Указывает,что в загружаемых таблицах (EMP и
                     PROJ) имеются данные и они д.б. удалены
                     перед загрузкой новых данных.
                  2.Несколько предложений INTO используются для
                     загрузки 2 таблиц,EMP и PROJ.В действи-
                     тельности одна и та же группа записей обрабаты-
                     вается 3 раза,каждый раз с другой комбинаци-
                     ей колонок,чтобы загрузить таблицу PROJ.
                  3.WHEN используется,чтобы загрузить только те
                     строки,у которых PROJ имеет непустое значение.
                     Когда PROJNO определено в колонках 25-27,стро-
                     ка вставляется в таблицу PROJ,только если име-
                     ется значение в этих колонках.
                  4.Когда PROJNO определено в колонках 29-31,стро-
                     ка вставляется в таблицу PROJ,только если
                     имеется значение в этих колонках.
                  5.Когда PROJNO определено в колонках 33-35,стро-
                     ка вставляется в таблицу PROJ,только если
                     имеется значение в этих колонках.
          
                  Файл данных для примера 5 следующий:
   і                                                               і
   і          1234 BAKER      10 9999 101 102 103                  і
   і          1234 JOKER      10 9999 777 888 999                  і
   і          2664 YOUNG      20 2893 425 abc 102                  і
   і          5321 OTOOLE     10 9999 321  55  40                  і
   і          2134 FARMER     20 4555 236 456                      і
   і          2414 LITTLE     20 5634 236 456  40                  і
   і          6542 LEE        10 4532 102 321  14                  і
   і          2849 EDDS       xx 4555     294  40                  і
   і          4532 PERKINS    10 9999  40                          і
   і          1244 HUNT       11 3452 665 133 456                  і
   і          123  DOOLITTLE  12 9940         132                  і
   і          1453 MACDONALD  25 5532     200                      і
                     
                  Файл отчета для примера 5 следующий:
   і                                                               і
   і    Control File:   case5.ctl                                  і
   і    Data File:      CASE5.DAT                                  і
   і    Read Mode:      System Record                              і
   і    Bad File:       CASE5.BAD                                  і
   і    Discard File:   CASE5.DSC (Allow all discards)             і
   і                                                               і
   і    Number to load: ALL                                        і
   і    Number to skip: 0                                          і
   і    Errors allowed: 50                                         і
   і    Bind array:     64 rows,maximum of 65336 bytes            і
   і    Record Length:  80 (Buffer size allocated per logical reco і
   і    Continuation:    none specified                            і
   і                                                               і
   і    Table EMP,loaded from every logical record.             і
   і    Insert option in effect for this table: REPLACE            і
   і                                                               і
   і    Column Name  Position  Len  Term  Encl  Datatype           і
   і    -----------  --------  ---  ----  ----  ----------         і
   і    EMPNO             1:4    4              CHARACTER          і
   і    ENAME            6:15   10              CHARACTER          і
   і    DEPTNO          17:18    2              CHARACTER          і
   і    MGR             20:23    4              CHARACTER          і
   і    Table PROJ,loaded when PROJNO != '   '                    і
   і    Insert option in effect for this table: REPLACE            і
   і                                                               і
   і    Column Name  Position  Len  Term  Encl  Datatype           і
   і    -----------  --------  ---  ----  ----  ----------         і
   і    EMPNO             1:4    4              CHARACTER          і
   і    PROJNO           5:27    3              CHARACTER          і
   і                                                               і
   і    Table PROJ,loaded when PROJNO != '   '                    і
   і    Insert option in effect for this table: REPLACE            і
   і                                                               і
   і    Column Name  Position  Len  Term  Encl  Datatype           і
   і    -----------  --------  ---  ----  ----  ----------         і
   і    EMPNO             1:4    4              CHARACTER          і
   і    PROJNO          29:31    3              CHARACTER          і
   і                                                               і
   і    Table PROJ,loaded when PROJNO != '   '                    і
   і    Insert option in effect for this table: REPLACE            і
   і                                                               і
   і    Column Name  Position  Len  Term  Encl  Datatype           і
   і    -----------  --------  ---  ----  ----  ----------         і
   і    EMPNO             1:4    4              CHARACTER          і
   і    PROJNO           3:35    3              CHARACTER          і
   і                                                               і
   і    Rejected logical records and errors:                       і
   і                                                               і
   і    Data File CASE5.DAT -                                      і
   і                                                               і
   і 1  Record 2: Rejected - Error on table EMP.                 і
   і 1    ORA-0001:  duplicate value in index                      і
   і 1  Record 8: Rejected - Error on table EMP,column DEPTNO.  і
   і 1    ORA-1772:  invalid number                                і
   і 1  Record 3: Rejected - Error on table PROJ,column PROJNO. і
   і 1    ORA-1772:  invalid number                                і
   і                                                               і
   і    Table EMP:                                                 і
   і 2    9 Rows successfully loaded.                            і
   і 2    3 Rows not loaded to data errors.                      і
   і 2    0 Rows not loaded because all WHEN clauses were failed.і
   і 2    0 Rows not loaded because all fields were null.        і
   і                                                               і
   і    Table PROJ:                                                і
   і 3    7 Rows successfully loaded.                            і
   і 3    2 Rows not loaded to data errors.                      і
   і 3    3 Rows not loaded because all WHEN clauses were failed.і
   і 3    0 Rows not loaded because all fields were null.        і
   і                                                               і
   і    Table PROJ:                                                і
   і 4    7 Rows successfully loaded.                            і
   і 4    3 Rows not loaded to data errors.                      і
   і 4    2 Rows not loaded because all WHEN clauses were failed.і
   і 4    0 Rows not loaded because all fields were null.        і
   і                                                               і
   і    Table PROJ:                                                і
   і 5    6 Rows successfully loaded.                            і
   і 5    3 Rows not loaded to data errors.                      і
   і 5    3 Rows not loaded because all WHEN clauses were failed.і
   і 5    0 Rows not loaded because all fields were null.        і
   і                                                               і
   і    Space allocated for bind array:   3904  bytes (40 row)     і
   і    Space otherwise allocated:        7568  bytes              і
   і                                                               і
   і    Total logical record skipped:         0                    і
   і    Total logical record read            12                    і
   і    Total logical record rejected:        3                    і
   і    Total logical record discarded:       0                    і
   і                                                               і
   і    Run began on Tue Apr 14 12:13:36 1987                      і
   і    Run ended on Tue Apr 14 12:13:46 1987                      і
   і                                                               і
   і    Elapsed time was:     00:00:09.28                          і
   і    CPU time was:         00:00:01.16                          і
                                         
                  EЗамечания:F
                  1.Ошибки печатаются не в том порядке,в каком
                     расположены физические записи,из-за буфериза-
                     ции.Файл отброшенных записей и файл пропущен-
                     ных записей будут содержать записи в том же по-
                     рядке,в каком они указаны в файле отчета.
                  2.Из 12 записей на входе 3 строки были отброшены
                     (строки для JOKER,YOUNG и EDDS).Никакие
                     данные не загружаются из отброшенных записей.
                  3.Девять записей удовлетворяют условию WHEN,
                     а две (JOKER и YOUNG) отброшены из-за ошибок
                     в данных.
                  4.Десять записей удовлетворяют условию WHEN,
                     а 3 (JOKER,YOUNG и EDDS) отброшены из-за
                     ошибок в данных.
                  5.Девять записей удовлетворяют условию WHEN,
                     а 3 (JOKER,YOUNG и EDDS) отброшены из-за
                     ошибок в данных.
          
                  Результат выполнения SQL*Loader следующий:
                     
                 SQL> select empno,ename,mgr,deptno from emp;
                     
               EMPNO ENAME             MGR     DEPTNO
          ---------- ----------- ---------- ----------
                1234 BAKER            9999          10
                5321 OTOOLE           9999          10
                2134 FARMER           4555          20
                2414 LITTLE           5634          20
                6542 LEE              4532          10
                4532 PERKINS          9999          10
                1244 HUNT             3452          11
                 123 DOOLITTLE        9940          12
                1453 MACDONALD        5532          25
                     
                 SQL> select * from proj order by empno;
                                                        
                               EMPNO     PROJNO
                           ---------- ----------
                                  123        132
                                 1234        101
                                 1234        103
                                 1234        102
                                 1244        665
                                 1244        656
                                 1244        133
                                 1453        200
                                 2134        236
                                 2134        456
                                 2414        236
                                 2414        456
                                 2414         40
                                 4532         40
                                 5321        321
                                 5321         40
                                 5321         55
                                 6542        102
                                 6542         14
                                 6542        321

+                E                  ГЛАВА 3
                           СИНТАКСИС КОМАНДНОЙ СТРОКИ F
                  Эта глава описывает команду SQLLOAD,используемую
                  для вызова SQL*Loader,и ее аргументы.

E   КОМАНДА SQLLOAD.F
                  SQL*Loader вызывается командой SQLLOAD,за которой
                  следуют различные аргументы.Если вы вызываете
                  SQLLOAD без аргументов,вы увидите сводку аргумен-
                  тов с кратким описанием и значениями по умолчанию.
                  Некоторые умолчания зависят от OC
                  и такой вызов позволяет увидеть умолчания,ис-
                  пользуемые в вашей ОС.
                  Пример такой сводки приведен ниже.В этом примере
                  приведены значения аргументов по умолчанию,не за-
                  висящие от ОС.
   і                                                               і
   і   SQLLOAD                                                     і
   і   Usage: SQLLOAD keyword=value [,keyword=value,...]           і
   і                                                               і
   і   Использование:                                              і
   і          SQLLOAD ключ.слово=значение [,ключ.слово=знач.,...]  і
   і                                                               і
   і   Правильные ключевые слова:                                  і
   і                                                               і
   і       userid -- имя пользователя ORACLE/пароль                і
   і      control -- имя управляющего файла                        і
   і          log -- имя файла отчета                              і
   і          bad -- имя файла отброшенных записей                 і
   і         data -- имя файла данных                              і
   і      discard -- имя файла пропущенных записей                 і
   і   discardmax -- допустимое число пропущенных записей          і
   і                 (по умолчанию все)                            і
   і         skip -- число логических записей,пропущенных         і
   і                 до обработки (по умолчанию 0)                 і
   і         load -- число загружаемых записей (по умолчанию все)  і
   і       errors -- допустимое число ошибок (по умолчанию 50)     і
   і         rows -- число строк в связанном массиве               і
   і                 (по умолчанию 64)                             і
   і     bindsize -- размер связанного массива в байтах            і
   і                 (по умолчанию nnnnn)                          і
   і       silent -- подавление сообщений при выполнении           і
   і                 (заголовок,ошибки,пропущенные записи)       і
                  
                  Аргументы следуют за командой и необязательно
                  разделяются запятыми.Они могут вводиться 2-я
                  способами:
                  * в любом порядке с использованием ключевых слов
                    для идентификации аргументов
                  * в определенном порядке,без ключевых слов.
                  Например,следующие 2 командные строки полностью
                  эквивалентны:
    sqlload control=foo.ctl,log=bar.log,bad=baz.bad,data=etc.dat,
    userid=scott/tiger,errors=999,load=2000,discard=toss.dis,
    discardmax=5
           
    sqlload scott/tiger,foo.ctl,bar.log,baz.bad,etc.dat,
    toss.dis,5,0,2000,999
                  
                  Вы можете использовать позиционные аргументы,а
                  далее недостающие ключевые,но не наоборот.Так,
                  следующая команда правильная:
    sqlload jane/pride,jobctl.ctl,discard=jobctl.dis,skip=1000
                  
                  а такая неправильная:
    sqlload skip=1000,jane/pride,jobctl.ctl,discard=jobctl.dis

E   АРГУМЕНТЫ КОМАНДНОЙ СТРОКИ  F
                  Ниже приведено описание аргументов SQL*Loader.
                  
                  EКлючевое   Назначение                   Позиция
                  словоF
                  
                  USERID     идентификация пользователя       1
                     
                  Имя пользователя ORACLE и пароль.Если опущены,
                  выдается подсказка.Если указан только слэш ("/"),
                  умолчание OPS$.Для загрузки в удаленную БД
                  д.б. указана строка спецификации БД SQL*Net.
                  
                  CONTROL    управляющий файл                 2
                     
                  Файл,описывающий,как загружать данные.Если рас-
                  ширение имени файла или тип файла не указаны,ис-
                  пользуется CTL.Если аргумент опущен,выдается
                  подсказка.
                  
                  LOG        файл отчета                      3
                     
                  Файл создается SQL*Loader и содержит информацию о
                  процессе загрузки.Если имя файла не указано,оно
                  принимается по умолчанию.Если расширение имени
                  или тип файла не указаны,используется LOG.
                  
                  BAD        файл отброшенных записей         4
                     
                  Файл создается SQL*Loader и содержит записи,в ко-
                  торых обнаружены ошибки при загрузке или нарушен
                  формат данных.Если имя файла не указано,исполь-
                  зуется имя управляющего файла.Если расширение
                  имени или имя файла не указаны,используется BAD.
                  Этот файл имеет тот же формат,что и файл данных,
                  поэтому он м.б. повторно загружен с тем же
                  управляющим файлом после того,как выполнены необ-
                  ходимые корректировки.
                  
                  DATA       файл данных                      5
                     
                  Этот файл содержит загружаемые данные.Если имя
                  файла не указано,оно принимается по умолчанию.
                  Если расширение имени или тип файла не указаны,
                  используется DAT.Данные м.б. также включены
                  непосредственно в управляющий файл.
                  
                  DISCARD    Файл пропущенных записей         6
                     
                  Необязательный файл,который создается,если указан
                  аргумент DISCARD или DISCARDMAX.В этот файл зано-
                  сятся записи,которые ни отброшены,ни вставлены в
                  загружаемую таблицу.Если имя файла не указано,по
                  умолчанию принимается имя управляющего файла.Если
                  расширение имени или тип файла не указаны,исполь-
                  зуется DSC.
                  Этот файл имеет тот же формат,что и файл данных,
                  поэтому он м.б. повторно загружен с тем же
                  управляющим файлом после того,как выполнены необ-
                  ходимые корректировки.
                                      
                  DISCARDMAX Допустимое число                 7
                             пропущенных записей
                     
                  Указывает,сколько записей допускается пропустить,
                  прежде чем загрузка будет прервана.По  умолчанию
                  все.Чтобы прервать загрузку на первой пропущенной
                  записи,нужно указать ноль (0).
                   
                  SKIP       Число записей,                 8
                             пропущенных до обработки
                     
                  Указывает число логических записей с начала файла,
                  которые нужно пропустить перед загрузкой.По умол-
                  чанию ноль.
                   
                  LOAD       Число загружаемых записей        9
                     
                  Максимальное число загружаемых логических  записей
                  (не считая  записей, указанных аргументом SKIP).
                  По умолчанию все записи д.б. загружены.Ес-
                  ли файл данных содержит меньше записей,ошибка не
                  сигнализируется.
                
                  ERRORS     Допустимое число ошибок          10
                     
                  Указывает,сколько ошибок допускается,прежде чем
                  загрузка будет  прервана.По умолчанию 50.Чтобы
                  прервать загрузку на первой ошибке,нужно указать
                  ноль (0).Чтобы разрешить все ошибки,нужно ука-
                  зать достаточно большое число.
                
                  ROWS       Число строк в связанном массиве  11
                     
                  Число строк в  буфере  для  выполнения  нескольких
                  включений за одну операцию COMMIT.По умолчанию 64
                  
                  BINDSIZE   Максимальный размер в байтах     12
                  
                  Максимальный размер связанного массива  в  байтах.
                  Этот размер отвергает значение по умолчанию (зави-
                  сящее от ОС),а также значение,
                  вычисленное на основе ROW.
                                   
                  SILENT       Подавление                     13
                  
                  Используйте соответствующие ключевые слова для по-
                  давления:
                                                  
                  HEADER     Заголовка SQL*Loader.
                                                  
                  FEEDBACK   Feedback в каждой точке COMMIT.
                                                  
                  ERRORS     Сообщений в файле отчета о каждой за-
                             писи,вызывающей ошибку ORACLE (число
                             отброшенных записей  по  прежнему будет
                             указано).
                                                  
                  DISCARDS   Сообщений в файле отчета о каждой за-
                             писи,помещенной в файл пропущенных
                             записей.
                                                  
                  ALL        Выполняет все перечисленное выше.

E   ИСПОЛЬЗОВАНИЕ КЛЮЧЕВОГО СЛОВА OPTIONS В УПРАВЛЯЮЩЕМ ФАЙЛЕ  F
                  Ключевое слово  OPTIONS удобно использовать,если
                  вы всегда вызываете SQL*Loader c одним  и  тем  же
                  управляющим файлом  и  постоянным набором аргумен-
                  тов,если командная строка с аргументами становит-
                  ся очень длинной или просто для сокращения времени
                  выполнения SQL*Loader.
                       Ключевое слово OPTIONS позволяет указать аргументы
                  выполнения SQL*Loader в управляющем файле,а не в
                  командной строке.Используйте OPTIONS для указания
                  следующих аргументов:
                  
                    SKIP = n
                    LOAD = n
                    ERRORS = n
                    ROWS = n
                    BINDSIZE = n
                    SILENT = {HEADER | FEEDBACK | ERRORS |
                              DISCARDS | ALL}
                  
                  Замечание: Указание SILENT HEADER не создает ника-
                  кого эффекта,так как к моменту обработки управля-
                  ющего файла заголовок уже будет выведен.
                  
                  Например,     OPTIONS (BINDSIZE=100000,SILENT=FEEDBACK)
                  
                  Аргументы,указанные  в управляющем файле ключевым
                  словом OPTIONS,отвергают значения этих же  аргу-
                  ментов,указанные в командной строке.
        
E   СООБЩЕНИЯ,ВЫДАВАЕМЫЕ SQL*LOADER F
                  При выполнении SQL*Loader вы увидите подобное  сообщение:
  і                                                                і
  і SQL*Loader: Version 1.0.14 - Production on Tue Feb 24 15:07:23 і
  і Copyright (c) 1986,Oracle Corporation,California,USA        і
  і All rights reserved                                            і
  і                                                                і
  і Commit point reached - record count 20                         і
                                                                         
                  либо вы увидите сообщение об ошибке:
  і                                                                і
  і SQL*Loader: Version 1.0.14 - Production on Tue Feb 24 15:07:23 і
  і Copyright (c) 1986,Oracle Corporation,California,USA        і
  і All rights reserved                                            і
  і                                                                і
  і SQL*Loader-641: Non-recoverable ORACLE error occurred          і
  і ORA-0704:  invalid column name                                 і
  і Error occured on SQL insert statement for table EMP            і
  і Your use of column loadseq is possibly in error                і
                                                      
                  Ошибки также выдаются в файл отчета.В приложении
                  А приведена информация о предупреждениях и сообще-
                  ниях об ошибках SQL*Loader.
                  Вы можете подавить заголовок и feedback,используя
                  опцию SILENT в командной строке:
                  
                     SILENT=(HEADER,FEEDBACK)

+               E                  ГЛАВА 4
                         СИНТАКСИС УПРАВЛЯЮЩЕГО ФАЙЛА F
                  Эта глава описывает язык загрузки данных
                  SQL*Loader,который используется при подготовке
                  управляющего файла.Несколько примеров управляющих
                  файлов приведено в главе 2.

E   СОЗДАНИЕ УПРАВЛЯЮЩЕГО ФАЙЛА F
                  Управляющий файл содержит следующую информацию:
                  * где находятся загружаемые данные.Указывается
                    либо имя файла (файлов) данных в операторе
                    INFILE,либо начало данных в управляющем файле
                    оператором BEGINDATA.Если ни INFILE,ни
                    BEGINDATA не используются,имя файла данных оп-
                    ределяется по аргументам командной строки.
                  * какие таблицы БД д.б. загружены;
                    используется оператор INTO TABLE
                  * соответствие между полями файла данных и колон-
                    ками таблиц БД,как часть оператора LOAD DATA.
                  
                  Общие правила подготовки управляющего файла следующие:
                  * Файл готовится в свободном формате.Так,опера-
                    тор может продолжаться со строки на строку и за-
                    нимать несколько строк,начинающихся с любого
                    слова
                  * Файл готовится на верхнем или нижнем регистре.
                    Регистр имеет значение только для строк,заклю-
                    ченных в кавычки
                  * Допускаются комментарии в любой строке.Они на-
                    чинаются двойным тире.SQL*Loader игнорирует лю-
                    бой текст от двойного тире до конца строки.
                    Однако комментарии не могут появляться в файле
                    данных или области данных управляющего файла.В
                    этих случаях двойное тире рассматривается как
                    часть данных.
                  * Ключевое слово SQL*Loader м.б. указано в
                    кавычках,если вы желаете использовать его как
                    имя таблицы или колонки.
                    
E   СИНТАКСИС ОПЕРАТОРА LOAD DATA  F
                  Управляющий файл обычно начинается фразой
                  LOAD DATA,за которой следуют несколько фраз,опи-
                  сывающих загружаемые данные.(Только комментарии
                  или оператор OPTIONS может предшествовать операто-
                  ру LOAD DATA).

                 ELOAD DATA:F полный синтаксис управляющего оператора:
   і                                                               і
   і  OPTIONS  (options)                                           і
   і                                                               і
   і  LOAD [DATA]                                                  і
   і  [ { INFILE | INDDN } { filename | * }                        і
   і    [ STREAM | RECORD | FIXED len                              і
   і      [ BLOCKSIZE size ] | VARIABLE [len] ] ]                  і
   і  [ { BADFILE | BADDN } filename ]                             і
   і  [ { DISCARDFILE | DISCARDDN } filename ]                     і
   і  [ { DISCARDS | DISCARDMAX } n ]                              і
   і                                                               і
   і  [ { INDDN | INFILE } ...]                                    і
   і                                                               і
   і  [ APPEND | REPLACE | INSERT ]                                і
   і  [ RECLEN n ]                                                 і
   і  [ { CONCATENATE n | CONTINUEIF                               і
   і      { [THIS | NEXT] (start[:end]) | LAST }                   і
   і               operator {'char_str' | X'hex_str'} } ]          і
   і                                                               і
   і  INTO TABLE tablename                                         і
   і      [ APPEND | REPLACE | INSERT ]                            і
   і      [ WHEN field_condition [ AND field_condition ...]]       і
   і      [ FIELDS [delimiter_spec] ]                              і
   і     (                                                         і
   і       column_name                                             і
   і       {                                                       і
   і         RECNUM |                                              і
   і         CONSTANT value |                                      і
   і         SEQUENCE ( { n | MAX | COUNT } [ ,increment ] ) |    і
   і         [ POSITION ( { start [:end] | * [+n] })] datatype_specі
   і           [ NULLIF field_condition ]                          і
   і           [ DEFAULTIF field_condition ]                       і
   і       }                                                       і
   і       [ ,...]                                                і
   і     )                                                         і
   і  [ INTO TABLE ...]                                           і
   і                                                               і
   і  [ BEGINDATA ]                                                і
                   
   Оptions        Допустимые опции:
                  
                    LOAD  SKIP  ERRORS  ROWS  BINDSIZE  SILENT
                  
                  Может быть использована любая комбинация опций.
                  Опции указываются в следующем формате:
                  
                    OPTIONS ( ROWS=200,SILENT= (HEADER,FEEDBACK) )
                  
                  Заметьте,что SILENT=HEADER,указанное в OPTIONS,
                  не будет иметь никакого эффекта.Заголовок к этому
                  моменту уже будет напечатан.Чтобы подавить заго-
                  ловок,вы должны указать это в командной строке.
                  
   EОperatorsF      Допустимые операторы,указывающие "равно" и "не
                  равно":
                             =       !=       ї=       <>
                   
   EField_   F      Условие для поля указывается следующим образом:
   EconditionF
                    { ( start [:end ] ) | columnname } operator
                       { 'char_string' | X'hex_byte_string' }
                  
                  Замечание: "символьная строка" и "шестнадцатерич-
                  ная строка" м.б. заключена либо в простые,
                  либо в двойные кавычки.
                  
   EDatatype_F      Указывается один из следующих типов данных:
   Espec     F
                    CHAR [ ( length ) ] [ delimiter_spec ]
                    DATE [ ( length ) ] [ mask ] [ delimiter_spec ]
                    VARCHAR [ ( length ) ]
                    SMALLINT
                    DOUBLE
                    GRAPHIC [EXTERNAL] [(length)]
                    {INTEGER | FLOAT | DECIMAL} EXTERNAL [ ( length ) ]
                    INTEGER [ ( length ) ]
                    FLOAT [ ( length ) ]
                    DECIMAL ( digits [ ,precision ] )
                    VARGRAPHIC [ ( length ) ]
                                   
   EDelimiter_F     Ограничители указываются в следующем формате:
   Espec      F
                  [ TERMINATED [ BY ] { WHITESPACE | [X] 'char' } ]
                  [ [ OPTIONALLY ] ENCLOSED [ BY ]  [X] 'char' ]
                  
                  Замечание: переменная char м.б. заключена
                  либо в простые,либо в двойные кавычки.Если ис-
                  пользуется X'char',то char рассматривается как
                  символ ASCII в 16-м формате.Ключевое
                  слово TERMINATED (ограничен) должно следовать пе-
                  ред ключевым словом ENCLOSED (заключен).
                                   
E   Указание файла данных F
                  Для полного определения файла данных нужно указать
                  имя файла и (необязательно) режим чтения файла.Вы
                  можете определить несколько файлов,используя нес-
                  колько операторов INFILE.
                  
   EИмя файлаF      Для указания файла,содержащего загружаемые дан-
                  ные,используется ключевое слово INFILE или INDDN,
                  за которым следует имя файла и (необязательно) ре-
                  жим чтения файла.Имя файла,указанное в INFILE
                  или INDDN,отвергает имя файла,указанное в ко-
                  мандной строке.Если имя файла не указано,по
                  умолчанию принимается имя управляющего файла с
                  расширением имени или типом файла DAT.Если загру-
                  жаемые данные находятся в управляющем файле,то
                  вместо имени файла нужно указать "E*F".
                  
                    { INFILE | INDDN }  { filename | * }
                  
                  EINFILE или INDDN.F Любое ключевое слово можно ис-
                  пользовать.
                  Efilename.F Имя файла,содержащего загружаемые дан-
                  ные.Можно использовать любое имя файла,допусти-
                  мое в ОС.Оно м.б. заклю-
                  чено в двойные кавычки.Если имя содержит пробел
                  или знаки пунктуации,кавычки обязательны.
                  E*.F Используется вместо имени файла,чтобы указать,
                  что данные находятся в управляющем файле.
                  
   EРежим чтенияF   Может быть задан режим чтения файла.Он указывает
   Eфайла       F   SQL*Loader,как открыть файл данных и обрабатывать
                  физические записи,содержащиеся в нем.Этот режим
                  используется,чтобы обеспечить максимальную сов-
                  местимость на большом множестве OC,которые поддерживает
                  ORACLE.
                  
   STREAM | RECORD | FIXED len [ BLOCKSIZE size ] | VARIABLE [ len ]
                  
                  ESTREAM.F Файл данных трактуется как поток последо-
                  вательных байтов.
                         Символы читаются один за другим.Физические записи
                  оканчиваются символом "новая строка".
                  ERECORD.F По умолчанию RECORD указывает,что
                  SQL*Loader должен использовать механизм управления
                  файлами/записями ОС.RECORD -
                  это единственный режим,который допускается,если
                  вместо имени файла указана "E*F".Поэтому если дан-
                  ные находятся в управляющем файле,режим чтения
                  указывать необязательно.
                  EFIXED len.F Логические записи имеют фиксированную
                  длину len.Очередная запись получается чтением len
                  байтов прямо из файла.Заметьте,что FIXED отно-
                  сится к формату физической записи; поля в записи
                  могут храниться в свободном формате.BLOCKSIZE
                  можно указывать,если данные загружаются прямо с
                  ленты.
                  EVARIABLE [len].F Длина записи содержится в первых
                 2 байтах.Сначала читается длина записи,а за-
                  тем сама запись.Предполагается,что первые 2
                  байта не являются частью записи.Длина len может
                  указываться для размещения буферов.Для эффектив-
                  ности нужно указать длину,достаточную для чтения
                  любой записи.Если длина не указана,выделяется 8К
                  байтов,что может привести к нарушению ограничений
                  ОС на используемую память.
                  Замечание: Не все режимы чтения файла используются
                  в различных ОС.В общем,если в
                  ОС отсутствует система управле-
                  ния записями,то режим чтения RECORD совпадает с
                  режимом STREAM.
                                   
E   Указание нескольких файлов данных  F
                  Для загрузки данных из нескольких файлов данных за
                  один прогон SQL*Loader нужно использовать оператор
                  INFILE для каждого файла данных.Эти файлы не обя-
                  зательно должны иметь одинаковый режим чтения;
                  один м.б. STREAM,другой FIXED,а третий мо-
                  жет описывать данные в управляющем файле.
                  Для каждого файла данных можно дополнительно ука-
                  зать два файла: файл пропущенных записей и файл
                  отброшенных записей.Имена этих файлов указываются
                  после имени соответствующего файла данных.Следую-
                  щий фрагмент управляющего файла содержит правиль-
                  ные операторы для 4-х файлов данных:
                  
       INFILE mydat1.dat  BADFILE mydat1.bad  DISCARDFILE mydat1.dis
       INFILE mydat2.dat
       INFILE mydat3.dat  DISCARDFILE mydat3.dis
       INFILE mydat4.dat  DISCARDMAX 10
                  
                  Для первого файла данных (MYDAT1.DAT) имена файла
                  отброшенных записей и файла пропущенных записей
                  указаны явно,поэтому оба файла будут созданы.Для
                  второго файла данных (MYDAT2.DAT) ни один из фай-
                  лов не указан,поэтому только файл отброшенных за-
                  писей будет создан,с именем файла и расширением
                  по умолчанию.Для 3-го файла (MYDAT3.DAT) по
                  умолчанию будет создан файл отброшенных записей;
                  файл пропущенных записей,явно указанный,также
                  будет создан.Для четвертого файла (MYDAT4.DAT) по
                  умолчанию будет создан файл отброшенных записей;
                  так как используется опция DISCARDMAX,SQL*Loader
                  предполагает,что нужен файл пропущенных записей
                  и создает его с именем по умолчанию (MYDAT4.DSC).
                       Ниже приведены примеры определения файлов данных:
                  
                    INFILE *
                  указывает,что данные содержатся в самом управляю-
                  щем файле.
                  
                    INFILE WHIRL
                  указывает,что данные содержатся в файле с именем
                  WHIRL и подразумеваемое расширение или тип файла
                  DAT.
                  
                    INFILE test3.dat  STREAM
                  указывает,что данные содержатся в файле с именем
                  test3.dat в формате потоком.
                  
                    INFILE "JULYREV.MJB"
                  указывает,что данные содержатся в файле с именем
                  "JULYREV.MJB" с записями фиксированной длины.
                  
                    INDDN "DAT0787.DAT"  FIXED 80  BLOCKSIZE 1024
                  указывает,что данные содержатся в файле с именем
                  "DAT0787.DAT" с записями фиксированной длины.Файл
                  находится на ленте,длина блока - 1024 байта.
                  
E   Указание файла отброшенных записей F
                  При выполнении SQL*Loader создает файл,в который
                  он помещает записи,содержащие ошибки формата или
                  вызывающие ошибки ORACLE.Чтобы определить имя
                  этого файла,используйте ключевое слово BADFILE
                  или BADDN,за которым следует имя файла.Если имя
                  файла опущено,по умолчанию принимается имя файла
                  данных,но с расширением имени или типом файла
                  BAD.Имя файла отброшенных записей,указанное в
                  управляющем файле,отвергает имя из командной
                  строки.
                  Файл отброшенных записей создается с таким же ре-
                  жимом чтения и с тем же форматом,что и файл дан-
                  ных.Если файл с таким именем уже существует,то в
                  зависимости от ОС либо он пере-
                  писывается,либо создается новая версия его.
                          
                    [ BADFILE | BADDN ] filespec
                  
                  EBADFILE или BADDN.F Любое ключевое слово можно ис-
                  пользовать.
                  Efilespec.F Любое допустимое имя файла,которое оп-
                  ределяет файл отброшенных записей.Этот файл всег-
                  да создается,даже если ни одной записи не отбро-
                  шено.
                  Ниже приведены примеры определения файлов отбро-
                  шенных записей:
                  
                    BADFILE UGN
                  указывает,что имя файла отброшенных записей UGN
                  и подразумеваемое расширение или тип файла BAD.
                  
                    BADDN BAD0001.REJ
                  указывает,что имя файла отброшенных записей
                  BAD0001 и расширение или тип файла REJ.
                                             
E   Указание файла пропущенных записей F
                  При выполнении SQL*Loader создает файл,в который
                  он помещает записи,не прошедшие условия отбора.
                  Эти записи называются пропущенными,в отличие от
                  отброшенных записей.Пропущенные записи не обяза-
                  тельно содержат неверные данные,это записи,кото-
                  рые просто не выбраны для загрузки.Они не удов-
                  летворяют условию отбора,заданному в некотором
                  предложении WHEN для некоторой загружаемой табли-
                  цы.Если же запись была вставлена в какую-либо
                  таблицу (или это не выполнилось из-за ошибок в
                  данных),она не помещается в файл пропущенных за-
                  писей.Вы можете выбрать,создавать или не созда-
                  вать файл пропущенных записей.Чтобы создать его,
                  используйте любую из опций:
                  
                    В управляющем файле:       В командной строке:
                  
                      DISCARDFILE filename       DISCARD
                      DISCARDDN filename         DISCARDMAX
                      DISCARDS
                      DISCARDMAX
                  
                  Если ни одна из указанных опций не используется,
                  файл пропущенных записей не создается.Обратите
                  внимание,что использование файла пропущенных за-
                  писей м.б. потребовано прямо - опцией,опре-
                  деляющей его имя,либо косвенно - определением
                  максимального числа пропущенных записей.
                          Чтобы определить имя файла,используйте ключевое
                  слово DISCARDFILE или DISCARDDN,за которым следу-
                  ет имя файла.
                  
                    [ DISCARDFILE | DISCARDDN ] filespec
                  
                  EDISCARDFILE или DISCARDDN.F Любое ключевое слово
                  можно использовать.
                  Efilespec.F Любое допустимое имя файла,которое оп-
                  ределяет файл пропущенных записей.
                  Для имени файла по умолчанию принимается имя файла
                  данных,но с расширением имени или типом данных
                  DSC.Имя файла пропущенных записей,указанное в
                  управляющем файле,отвергает имя из командной
                  строки.Если файл с таким именем уже существует,
                  то в зависимости от ОС либо он
                  переписывается,либо создается новая версия его.
                  Файл пропущенных записей создается с таким же ре-
                  жимом чтения и с тем же форматом,что и файл дан-
                  ных,поэтому он м.б. легко использован для
                  последующей загрузки с имеющимся управляющим фай-
                  лом (после изменения условий отбора в предложениях
                  WHEN).
                         Файл пропущенных записей создается только в том
                  случае,если это потребовано.
                  Ниже приведены примеры определения файлов пропу-
                  щенных записей:
                  
                    DISCARDFILE CIRCULAR
                  
                  указывает,что имя файла пропущенных записей
                  CIRCULAR и подразумеваемое расширение или тип фай-
                  ла DSC.
                  
                    discardfile forget.me
                  
                  указывает,что файл пропущенных записей имеет имя
                  forget и расширение имени или тип файла me.
                  
                    DISCARDDN NOTAPPL.MAY
                  
                  указывает,что файл пропущенных записей имеет имя
                  NOTAPPL и расширение имени или тип файла MAY.
                           
   EОграничениеF    Вы можете ограничить число пропущенных записей из
   Eчисла      F    файла данных следующим образом:

   EпропущенныхF      [ DISCARDMAX | DISCARDS ]  n
   Eзаписей    F    где n - целое число.
                  
                  Если указанный лимит достигнут,то обработка файла
                  данных прекращается и начинает обрабатываться сле-
                  дующий файл данных,если он существует.
                  Указанное максимальное число пропущенных записей
                  одно и то же для всех файлов данных.Оно может
                  также указываться после имени файла и в этом слу-
                  чае относится только к этому файлу.
                  Если указывается максимальное число пропущенных
                  записей,но имя файла не определяется,SQL*Loader
                  создает файл пропущенных записей,используя расши-
                  рение имени или тип файла по умолчанию.
                                             
E   Перезапись или добавление записей в существующую таблицу F
                  Замечание:  Этот раздел соответствует ключевому
                  слову RESUME утилиты DB2; пользователи DB2 могут
                  также обратиться к описанию RESUME в Приложении B.
                  
                  Если таблица,которую вы загружаете,уже содержит
                  данные,вы имеете 3 возможности при выполнении
                  SQL*Loader:
                  * Загрузить ваши данные несмотря на то,что табли-
                  ца уже содержит данные.
                  * Заменить любые существующие данные вашими.
                  
                  * Загрузить данные,если только таблица пуста.Ес-
                  ли в это случае таблица содержит данные,то возни-
                  кает ошибка и загрузка прекращается (Эта возмож-
                  ность используется по умолчанию).
                        Итак для каждой загружаемой таблицы вы можете ука-
                  зать одну из следующих опций:
                  
                    [ APPEND | REPLACE | INSERT ]
                  
                  EAPPEND.F Если в таблице уже существуют данные,то
                  SQL*Loader добавляет новые строки в нее.Если в
                  таблице данных нет,новые строки просто загружают-
                  ся.
                  EINSERT.F Значение по умолчанию.Требует,чтобы таб-
                  лица была пуста перед загрузкой.Если таблица со-
                  держит строки,то SQL*Loader возвращает ошибку и
                  прекращает выполнение.
                  EREPLACE.F Если в таблице уже существуют данные,то
                  SQL*Loader заменяет их новыми строками.Если в та-
                  блице данных нет,новые строки просто загружаются.
                  Таким образом,старые строки теряются.Этот аргу-
                  мент требует,чтобы пользователь,вызывающий
                  SQL*Loader,имел полномочия DELETE для таблицы.Вы
                  не можете восстановить данные,которые содержались
                  в таблице до загрузки,если только они не были со-
                  хранены утилитой EXPORT или каким-нибудь другим
                  способом.
                  Вы можете использовать одну опцию для всех загру-
                  жаемых таблиц,помещая ее перед всеми предложения-
                  ми INTO TABLE.Либо вы можете указать опцию для
                  отдельной таблицы,помещая ее после требуемого
                  предложения INTO TABLE.В первом случае опция дей-
                  ствует для всех таблиц,не имеющих своих собствен-
                  ных опций.
                                             
E   Установка максимальной длины логических записей F
                  Используя ключевое слово RECLEN,за которым следу-
                  ет максимальная длина,вы можете обеспечить доста-
                  точный размер буфера,размещенного для полной ло-
                  гической записи.Это особенно важно в том случае,
                  когда SQL*Loader не может определить длину по ре-
                  жиму чтения или из описания позиций для колонок в
                  данных.Иначе,если логическая запись слишком
                  длинна и SQL*Loader обнаруживает ошибку посредине
                  записи,только фактически прочитанная часть записи
                  помещается в файл отброшенных записей.Если вы хо-
                  тите,чтобы логическая запись была записана в файл
                  отброшенных записей целиком,вы должны указать
                  достаточную максимальную длину.
                  
                    RECLEN len
                  
                  Elen.F Максимальная длина логической записи (целое).
                  По умолчанию 80 для файлов с записями фиксирован-
                  ной длины и вычисляется для файлов с записями пе-
                  ременной длины.Если длина записи,помещенная в
                  файл отчета,отличается от ожидаемой вами,то фак-
                  тически это размер буфера,вычисленный SQL*Loader,
                  а не число байтов,прочитанных из каждой записи.
                           
E   Формирование логической записи из нескольких физических  F
                  Вы можете создать одну логическую запись из нес-
                  кольких физических записей несколькими способами,
                  используя одно из ключевых слов в зависимости от
                  характера ваших данных:
                  
                    CONCATENATE
                    CONTINUEIF
                  
                  CONCATENATE используется в простейшем случае,ког-
                  да SQL*Loader должен объединять одно и то же число
                  физических записей,чтоды создать одну логическую.
                  Синтаксис:
                  
                    CONCATENATE  n
                  
                  где n - целое число,указывающее,сколько физичес-
                  ких записей нужно объединять.
                         Если число физических записей,из которых создает-
                  ся одна логическая запись,изменяется,то нужно
                  использовать CONTINUEIF.За этим ключевым словом
                  следует условие,которое проверяется для каждой
                  физической записи,как только она прочитана.На-
                  пример,две записи м.б. объединены,если в
                  позиции 80 первой записи содержится символ #.
                  Если же в этом месте находится любой другой сим-
                  вол,то вторая запись не будет объединяться с пер-
                  вой.Полный синтаксис ключевого слова CONTINUEIF
                  имеет еще большую гибкость:
                  
                CONTINUEIF { [ THIS | NEXT ] (start [:end]) | LAST }
                operator { 'char_str' | X'hex_str' }
                  
                  ETHIS.F Если условие в текущей записи верно,то чи-
                  тается следующая физическая запись и присоединяет-
                  ся к текущей записи.Это продолжается до тех пор,
                  пока условие в записи верно.Если же условие в те-
                  кущей записи ошибочно,то текущая физическая за-
                  пись считается последней физической записью в фор-
                  мируемой логической записи.THIS используется по
                  умолчанию.
                          ENEXT.F Если условие в следующей записи верно,то
                  тогда следующая физическая запись объединяется с
                  текущей записью.Это продолжается до тех пор,по-
                  ка условие в записи верно.Если же условие в сле-
                  дующей записи ошибочно,то текущая физическая за-
                  пись считается последней физической записью в фор-
                  мируемой логической записи.
                  Estart:end.F Указывает начальную и конечную позиции
                  в физической записи.Позиции нумеруются с первой.
                  Допускается использовать двоеточие или дефис
                  (start:end или start-end).
                  Если вы опустите end,длина поля продолжения счи-
                  тается равной длине строки байтов или символов.
                  Если вы используете end и длина получившегося поля
                  продолжения не равна длине строки байтов или сим-
                  волов,более короткое дополняется справа ( сим-
                  вольная строка - пробелами,шестнадцатеричная -
                  нулями).
                          ELAST.F Это условие аналогично THIS,но проверяется
                  всегда последний отличный от пробела символ.Если
                  этот символ в текущей записи удовлетворяет усло-
                  вию,то следующая физическая запись читается и
                  объединяется с текущей записью.Это продолжается
                  до тех пор,пока условие в записи верно.Если же
                  условие в текущей записи ошибочно,то текущая фи-
                  зическая запись считается последней физической за-
                  писью в формируемой логической записи.
                  Eoperator.F Допустимыми операторами являются "равно"
                  и "не равно":
                                    =       !=       ї=       <>
                  
                  В случае "равно" условие верно,если поле и строка
                  сравнения в точности совпадают.В случае "не рав-
                  но" они могут отличаться любым символом.
                  Echar string.F Строка символов,сравниваемая с полем
                  продолжения,определенным start и end,в зависи-
                  мости от оператора.Строка д.б. заключена в
                  простые или двойные кавычки.Сравнение выполняется
                  символ за символом,более короткая строка дополня-
                  ется справа пробелами.
                          EX'hex string'.F Строка байтов в шестнадцатеричном
                  формате импользуется таким же образом,как и сим-
                  вольная строка,рассмотренная выше.Так,строка
                  X'1FB033' представляет 3 байта со значениями
                  1F,B0,33 (шестнадцатеричные).
                          EЗАМЕЧАНИЕ:F позиции записи,указанные в предложении
                  CONTINUEIF,относятся к каждой физической записи.
                  Это единственная возможность ссылаться на позиции
                  физической записи.Все другие ссылки относятся к
                  логическим записям.
                  Для CONTINUEIF THIS и CONTINUEIF NEXT поле продол-
                  жения удаляется из каждой физической записи до
                  формирования логической записи.Это позволяет эле-
                  ментам данных располагаться в записях без посто-
                  ронних символов (символов продолжения) в середине.
                  Следующие 2 примера показывают использование
                  CONTINUEIF THIS и CONTINUEIF NEXT:
                                                    
                    CONTINUEIF THIS          CONTINUEIF NEXT
                    (1:2) = '%%'             (1:2) = '%%'
                  
                  В следующих четырех записях точки обозначают сим-
                  вол пробела:
                    %%aaaaaaaa               ..aaaaaaaa
                    %%bbbbbbbb               %%bbbbbbbb
                    ..cccccccc               %%cccccccc
                    %%dddddddd               ..dddddddd
                  
                  Сформированная запись будет одной и той же в обоих
                  случаях:
                             aaaaaaaabbbbbbbbcccccccc
                  
                  Заметим,что CONTINUEIF LAST отличается от
                  CONTINUEIF THIS и CONTINUEIF NEXT тем,что символ
                  продолжения EнеF удаляется из физических записей.
                  Примеры CONTINUEIF:
                  
                    CONTINUEIF THIS (1) = "*"
                  
                  указывает,что если текущая физическая запись
                  (запись-1) содержит звездочку в позиции 1,то сле-
                  дующая физическая запись (запись-2) д.б.
                  присоединена к ней.Если запись-2 содержит звез-
                  дочку в позиции 1,то так же присоединяется и за-
                  пись-3.
                  Если запись-2 не содержит звездочку в позиции 1,
                  то она все равно будет присоединена к записи-1,но
                  запись-3 уже начнет новую логическую запись.
                           
                    CONTINUEIF LAST = ","
                  
                  указывает,что если текущая физическая запись
                  (запись-1) содержит запятую в последней отличной
                  от пробела позиции,то следующая физическая запись
                  (запись-2) будет присоединена к ней.Если запись-1
                  не содержит запятую в последней позиции,то это
                  последняя физическая запись в формируемой логичес-
                  кой записи.
                  
                    CONTINUEIF NEXT (7:8) = "10"
                  
                  указывает,что если следующая физическая запись
                  (запись-2) содержит "10" в позициях 7 и 8,то она
                  д.б. присоединена к предыдущей физической
                  записи (записи-1).Если же запись не содержит "10"
                  в позициях 7 и 8,то она нечнет новую логическую
                  запись.
                  
E   Определение таблиц и колонок F
                  Раздел оператора LOAD DATA,в котором определяются
                  таблицы,колонки и типы данных,называется блоком
                  INTO TABLE.Чтобы загрузить несколько таблиц,вы
                  должны включить по одному блоку INTO TABLE для
                  каждой загружаемой таблицы.
                  
   EУказание   F    Блок INTO TABLE начинается ключевыми словами INTO
   Eимен таблицF    TABLE,за которыми следует имя таблицы ORACLE,
                  принимающей данные.
                  
                INTO TABLE tablename  [ INSERT | APPEND | REPLACE ]
                  
                  Таблица должна уже существовать.Имя таблицы д.б. заключено в
                  двойные кавычки,если оно сов-
                  падает с ключевым словом SQL или SQL*Loader,если
                  оно содержит специальные символы или если просто
                  есть желание.
                  
                    INTO TABLE SCOTT."COMMENT"
                    INTO TABLE SCOTT."comment"
                    INTO TABLE SCOTT."-COMMENT"
                  
                  Имя пользователя,выполняющего SQL*Loader,должно
                  иметь полномочия INSERT для таблицы,а если поль-
                  зователь не является владельцем таблицы,имя вла-
                  дельца должно указываться перед именем таблицы:
                  
                    INTO TABLE SOPHIA.EMP
                  
                  Блок INTO TABLE может содержать ряд опций для заг-
                  рузки таблицы.Например,вы можете указать различ-
                  ные опции (INSERT,APPEND,REPLACE) для каждой
                  таблицы в зависимости от того,что SQL*Loader дол-
                  жен делать,если в таблице уже имеются данные.
                  
   EВыбор записейF  Вы можете выбрать: или загрузить,или пропустить
   Eдля загрузки F  логическую запись - используя предложение WHEN для
                  проверки условия в записи.
                  Предложение WHEN указывается после имени таблицы и
                  содержит одно или несколько условий.
                  
             WHEN (field_condition) [ AND (field_condition) ] ...
                  
                  Efield_condition.F Условие для поля.Это условие
                  аналогично условию в предложении CONTINUEIF,но
                  имеет два важных отличия.Во-первых,позиции ссы-
                  лаются на логическую запись,а не на физическую.
                  Во-вторых,вы можете указывать либо позиции в ло-
                  гической записи,либо имена колонок в загружаемой
                  таблице.После того,как значение колонки опреде-
                  лено,проверяется условие WHEN.Строка будет вста-
                  влена в таблицу только в том случае,если условие
                  WHEN выполняется.В следующем примере указывается,
                  что каждая запись со значением "q" в 5-й колонке
                  д.б. загружена:
                                    WHEN (5) = 'q'
                  
                  Предложение WHEN может содержать несколько усло-
                  вий,соединенных связкой AND.Скобки необязатель-
                  ны,но могут использоваться для ясности в случае
                  нескольких условий.Например:
                  
                    WHEN ( DEPTNO = '10' ) AND ( JOB = 'SALES' )
                  
   EУказаниеF       Условие для поля - это условие,проверяемое на
   Eусловия F       основе логической записи.Оно используется в пред-
   Eдля поляF       ложениях WHEN,NULLIF и DEFAULTIF.
                  
                    { ( start [:end] ) | column_name } operator
                              { 'char_string' | X'hex_string' }
                  
                  Условие для поля указывается следующим образом:
                  Estart.F Указывает начальную позицию поля сравнения
                  в логической записи.
                  Eend.F Указывает конечную позицию поля сравнения
                  в логической записи.
                  Допускается использовать двоеточие или дефис
                  (start:end или start-end).
                  Если вы опустите end,длина поля считается равной
                  длине строки сравнения.Если длины отличаются,то
                  более короткая строка дополняется справа ( сим-
                  вольная строка - пробелами,16-ая - нулями).
                          Ecolumn_name.F Имя колонки в таблице БД.
                  Если имя колонки используется вместо start:end,
                  то спецификация для этой колонки используется,
                  чтобы определить поле сравнения.Column_name  дол-
                  жно в точности совпадать с именем колонки из опре-
                  деления таблицы в БД.Заключите имя ко-
                  лонки в кавычки,если оно совпадает с ключевым
                  словом SQL или SQL*Loader,если оно содержит спе-
                  циальные символы или если просто есть желание.
                  Eoperator.F Допустимыми операторами являются "равно"
                  и "не равно":
                                    =       !=       ї=       <>
                  
                  Echar string.F Строка символов,заключенная в прос-
                  тые или двойные кавычки,сравнивается с полем сра-
                  внения.Если сравнение верно,то строка вставляет-
                  ся в таблицу.
                  EX'hex string'.F Строка байтов в 16-ом
                  формате используется таким же образом,как и сим-
                  вольная строка,рассмотренная выше.
                  
   EУказание   F    Если все поля данных разделены одинаковым символом
   EтерминатораF    (терминатором) в файле данных,вы можете использо-
   Eданных     F    вать ключевое слово FIELDS для указания терминато-
                  ра по умолчанию.Вы можете также определить необя-
                  зательный ограничитель (символ,ограничивающий с
                 2сторон строки).Синтаксис:
                  
            FIELDS [ TERMINATED [ BY ] { WHITESPACE | [X] 'char' } ]
            [ [ OPTIONALLY ] ENCLOSED [ BY ] [X] 'char' ]
                  
                  Вы можете переопределить разделитель для любой за-
                  данной колонки,указывая его после имени колонки
                  (см.Пример 3).Смотрите "Определение символьных
                  данных с ограничителями" для более подробной ин-
                  формации об ограничителях.
                  
   EОпределениеF    Любое число колонок таблицы м.б. загружено.
   Eколонок    F    Любая колонка,определенная в БД,но не
                  указанная в управляющем файле,получает пустое
                  значение (это простейший способ вставить пустые
                  значения).
                  Определение колонок должно быть заключено в круг-
                  лые скобки,и каждое определение колонки отделяет-
                  ся от следующего запятой.Определение колонки со-
                  держит имя колонки,за которым следует специфика-
                  ция для значения,вставляемого в таблицу для этой
                  колонки.Если значение должно читаться из файла
                  данных,спецификация содержит позицию,тип данных,
                  параметр пустого поля и значение по умолчанию.Ес-
                  ли значение генерирует SQL*Loader,это либо ключе-
                  вые слова RECNUM,CONSTANT,либо функция SEQUENCE.
                  Список колонок заключается в круглые скобки и раз-
                  деляется запятыми.
                                      ( columnspec,columnspec,...)
                  
                  Каждое имя колонки должно соответствовать колонке
                  в таблице,указанной в предложении INTO.Имя ко-
                  лонки д.б. заключено в кавычки,если оно
                  совпадает с ключевым словом SQL или SQL*Loader,
                  если оно содержит специальные символы или если
                  просто есть желание.
                  
   EУстановка  F    Чтобы установить для колонки значение константы,
   Eзначения   F    используйте ключевое слово CONSTANT c необходимым
   Eколонки    F    значением:
   Eк константеF                    CONSTANT value
                  
                  Вы можете заключить значение в кавычки.Это обя-
                  зательно,если значение содержит символ whitespace
                  или зарезервированное слово.Будьте внимательны
                  при указании допустимого назначения; если назначе-
                  ние неверно,каждая строка будет отброшена.
                  Не используйте ключевое слово CONSTANT для уста-
                  новки пустого значения.Вообще не назначайте или
                  не указывайте эту колонку.
                  ORACLE автоматически присваивает пустое значение
                  для колонки,если она не определена никаким спосо-
                  бом.Комбинация "CONSTANT - значение" представляет
                  полное описание колонки.
                  
   EУстановка   F   Используйте ключевое слово RECNUM после имени ко-
   Eзначения    F   лонки для установки значения колонки равному номе-
   Eколонки     F   ру логической записи,из которой данная строка за-
   Eк номеру    F   гружается.Записи нумеруются последовательно с на-
   Eзаписи в    F   чала первого файла данных,начиная с номера 1.
   Eфайле данныхF   RECNUM увеличивается для каждой формируемой логи-
                  ческой записи,которая пропускается до обработки,
                  пропускается при обработке,отбрасывается или за-
                  гружается.Так,если вы используете опцию SKIP=10,
                  то первая загруженная запись будет иметь значение
                  RECNUM=11.
                  Комбинация "имя колонки - RECNUM" представляет
                  полное описание колонки:
                  
                    column_name RECNUM
                               
   EФормированиеF   Функция SEQUENCE м.б. использована,чтобы
   Eуникального F   обеспечить уникальное значение для любой отдельной
   Eпоследова-  F   колонки.SEQUENCE возрастает для каждой записи,
   Eтельного    F   которая загружается или отбрасывается.Она не воз-
   Eномера      F   растает для пропускаемых записей.Она имеет 2
                  аргумента.Первый - начальное значение,второй -
                  шаг возрастания.Если начальное значение есть це-
                  лое положительное n,то первая запись,добавляемая
                  в таблицу,будет иметь значение n для этой колон-
                  ки; значение для следующей строки будет увеличено
                  на шаг.
                  Комбинация "имя колонки - функция SEQUENCE" пред-
                  ставляет полное описание колонки:
                  
      column_name SEQUENCE  ( { n | MAX | COUNT }  [ ,increment ] )
                  
                  ESEQUENCE.F Функция SEQUENCE используется для опре-
                  деления значения колонки.
                  En.F Указывает начальное значение n.
                  ECOUNT.F В качестве начального значения принимается
                  число строк,уже имеющихся в таблице,плюс шаг.
                  EMAX.F В качестве начального значения принимается
                  максимальное значение колонки в существующих таб-
                  лицах плюс шаг.
                  Eincrement.F Шаг возрастания.По умолчанию равен 1.
                  Если строка отброшена (например,из-за ошибки фор-
                  мата или ошибки ORACLE),то значение,генерируемое
                  функцией SEQUENCE,не корректируется.Так,если
                  колонка в четырех последовательных строках должна
                  получить значения 10,12,14 и 16,а вторая запись
                  отбрасывается,то 3 строки,вставленные в табли-
                  цу,будут иметь значения 10,14 и 16,а не 10,12
                  и 14.Это позволяет сохранить последовательность
                  вставок,несмотря на ошибки данных.Если вы отме-
                  тите отброшенные записи и повторно загрузите их,
                  вы можете вручную установить значения колонок в
                  соответствии с требуемой последовательностью.
    
   EУказание   F    Чтобы загрузить данные из файла данных,SQL*Loader
   Eпозиции    F    должен знать,где размещено поле и какова его дли-
   Eполя данныхF    на.Чтобы указать позицию поля в логической запи-
                  си,используйте предложение POSITION в определении
                  колонки.Позиция м.б. указана явно или отно-
                  сительно предыдущего поля.Аргументы POSITION д.б. заключены
                  в круглые скобки.
                  
                    POSITION ( { start [ :end ] | * | [ +n ] } )
                  
                  Estart.F Указывает начальную позицию поля данных
                  в логической записи.Позиции логической записи
                  нумеруются с 1.
                  Eend.F Указывает конечную позицию поля данных
                  в логической записи.
                  Допускается использовать двоеточие или дефис
                  (start:end или start-end).
                  Если вы опустите end,длина поля определяется по
                  типу данных в файле данных (см.разделы для каж-
                  дого типа данных; заметим,что если данные CHAR
                  указаны без start и end,то длина поля считается
                  равной 1).Если невозможно определить длину поля
                  по типу данных,выдается сообщение об ошибке.
                  E*.F Указывает,что поле данных следует непосредс-
                  твенно за предудущим полем.Если * используется
                  для первого поля данных,то считается,что оно
                  начинается с начала логической записи.Если * ис-
                  пользуется без start и end,длина поля определяет-
                  ся по типу данных.
                  E+n.F Смещение,указанное как +n,м.б. исполь-
                  зовано с *,чтобы определить положение поля отно-
                  сительно предыдущего.n символов будет пропущено
                  перед чтением значения для этого поля.
                  Предложение POSITION м.б. полностью опущено.
                  В этом случае для спецификации поля используется
                  значение POSITION(*).
                  Если при загрузке нескольких таблиц вы указываете
                  POSITION(*) для первой колонки первой таблицы,то
                  позиция определяется с начала логической записи.
                  Если вы указываете POSITION(*) для первой колонки
                  следующих таблиц,позиция определяется относитель-
                  но последней колонки предыдущей таблицы.
                  Поэтому позиции во втором и следующих блоках INTO
                  TABLE не установлены с начала логической записи,
                  если вы не потребуете этого явно.Выход простой:
                  вместо POSITION(*) или POSITION(*+n) для первого
                  поля следующего блока INTO TABLE используйте
                  POSITION(1) или POSITION(n).Это позволяет загру-
                  жать несколько таблиц,когда данные для каждой
                  таблицы находятся в одной и той же логической за-
                  писи.Для каждой следующей таблицы можно либо про-
                  должить обработку логической записи,либо начать
                  сначала.
                                      
  Несколько примеров:
                      SITEID  POSITION (*) SMALLINT
                      SITELOC POSITION (*) INTEGER
                  
                  Если это спецификация первых2колонок,SITEID
                  будет начинаться в позиции 1,а SITELOC - сразу за
                  ним.
                  
           ENAME   POSITION (1:20) CHAR
           EMPNO   POSITION (22-26) INTEGER EXTERNAL
           ALLOW   POSITION (*+2) INTEGER EXTERNAL TERMINATED BY "/"
                  
                  Колонка ENAME - это символьное данное в позициях
                  1-20,далее следует колонка EMPNO,вероятно
                  числовое данное,в позициях 22-26.Колонка ALLOW
                  сдвинута относительно EMPNO на +2,то есть начина-
                  ется с позиции 28 и продолжается до символа "/".
                  
   EУказание    F   Длина полей м.б. указана несколькими спосо-
   Eдлины данныхF   бами.Иногда м.б. использованы 2 указания,
                  из которых одно имеет преимущество.Следующие пра-
                  вила описывают,как определяется длина поля:
                  * Длина,определяемая по типу данных,отвергает
                    длину,указанную в POSITION (start:end) или дли-
                    ну поля до разделителя.
                  * Длина,указанная в POSITION (start:end),отвер-
                    гает длину поля до разделителя.
                  * Длина поля до разделителя отвергает длину из
                    POSITION,если POSITION указывает только началь-
                    ную позицию.
                  * Для данных CHARACTER,указанных только с start
                    (без длины и без ENCLOSED BY),предполагается
                    длина 1.
                            
   EУказаниеF       После указания позиции поля данных во входной за-
   Eтипа    F       писи вы должны указать тип данных для этого поля.
   Eвходных F       Этот тип данных относится к данным в файле и не-
   Eданных  F       обязательно совпадает с типом данных колонки в
                  таблице ORACLE,так как ORACLE автоматически вы-
                  полнит преобразование.Однако вы отвечаете за то,
                  чтобы подобное преобразование имело смысл и не
                  приводило к ошибкам.В частности,при преобразова-
                  нии от символьного к числовому вы д.б. уве-
                  рены,что символьная строка представляет правиль-
                  ное числовое значение.Для каждого поля можно ука-
                  зать только один тип данных.Если тип данных не
                  указан,предполагается CHAR.
    
   EТип данныхF     Поле содержит символьные данные.Если длина поля
   ECHAR      F     не указана,она берется из POSITION,если указана
                  - отвергает длину из POSITION.Если таким образом
                  длина нигде не найдена,используется длина 1.
                  
                    CHAR [ ( length ) ]  [ delimiter_spec ]
                  
                  Поле с типом данных CHAR может иметь также пере-
                  менную длину или представляться с разделителями
                  или ограничителями.См."Определение символьных
                  данных с ограничителями".
                  Если колонка таблицы БД объявлена как
                  LONG,вы должны явно указать максимальное значение
                  длины либо в ключевом слове LENGTH,либо в пред-
                  ложении POSITION.Это обеспечит достаточную длину
                  буфера,размещенного для чтения данных,и необхо-
                  димо даже в случае данных с ограничителями.
                                                             
   EТип данныхF     Поле содержит символьные данные,которые должны
   EDATE      F     быть преобразованы к дате с использованием ука-
                  занной маски ORACLE.Например:
                  
        LOAD DATA
        INTO TABLE DATES (COL_A POSITION (1:15) DATE 'DD-Mon-YYYY')
        BEGINDATA
        01-Jan-1066
        01-Apr-1534
        28-Feb-2004
                  
                  Если длина не указана,она берется из POSITION,
                  если указана - отвергает длину из POSITION.В ка-
                  честве маски используется любая допустимая маска
                  ORACLE для даты.Если маска опущена,по умолчанию
                  используется маска "DD-Mon-YY".Длина д.б.
                  заключена в круглые скобки,а маска - в кавычки.
                  
        DATE [ ( length ) ]  [ datemask ]  [ delimiter_spec ]
                  
                  Поле с типом данных DATE может иметь также пере-
                  менную длину или представляться с разделителями
                  или ограничителями.См."Определение символьных
                  данных с ограничителями".
                  
   EТип данныхF     Поле содержит символьную строку переменной длины,
   EVARCHAR   F     которая в первых2байтах содержит поле длины.
                  Поле длины должно начинаться с позиции start пред-
                  ложения POSITION.Длина включает первые 2 байта.
                  Если вы используете POSITION(start:end),то end
                  игнорируется.
                                    VARCHAR [ ( length ) ]
                                     
                  Если вы указываете длину после VARCHAR,эта длина
                  используется как максимальное значение и служит
                  для размещения буферов.Если длина не указана,вы-
                  деляется буфер длиной 2К байтов.
                  
   EТип данныхF     Поле содержит 2-ное целое данное в формате
   ESMALLINT  F     полуслова.Если вы указываете start:end в предло-
                  жении POSITION,end игнорируется.Длина поля опре-
                  деляется длиной полуслова в вашей системе.(Тип
                  данных SHORT INT в Си).
                  
                    SMALLINT
                            
   EТип данныхF     Поле содержит 2-ное целое данное в формате пол-
   EINTEGER   F     ного слова.Если вы указываете start:end в предло-
                  жении POSITION,end игнорируется.Длина поля опре-
                  деляется длиной полного слова в вашей системе.
                  (Тип данных LONG INT в Си).
                  
                    INTEGER
                            
   EТип данныхF     Поле содержит 2-ное плавающее данное простой
   EFLOAT     F     точности.Если вы указываете end в предложении
                  POSITION,end игнорируется.Длина поля определя-
                  ется длиной плавающего простой точности в вашей
                  системе.(Тип данных FLOAT в Си).
                  
                    FLOAT
                         
   EТип данныхF     Поле содержит 2-ное плавающее данное двойной
   EDOUBLE    F     точности.Если вы указываете end в предложении
                  POSITION,end игнорируется.Длина поля определя-
                  ется длиной плавающего двойной точности в вашей
                  системе.(Тип данных DOUBLE или LONG FLOAT в Си).
                  
                    DOUBLE
                         
   EТип данныхF     Поле содержит данное,представленное в упакованном
   EDECIMAL   F     10-м формате (строка 10-х цифр,каждая
                  из которых  представлена 4 битами;  знак
                  представлен 4-я крайними правыми битами).
                  Формат DECIMAL требует указать,сколько цифр со-
                  держится в числе.Это позволяет вычислить длину
                  упакованного 10-го поля в байтах.Можно так-
                  же указать точность или масштабный множитель для
                  определения количества цифр в дробной части.
                  
                    DECIMAL ( digits [ ,precision ] )
                  
                  Edigits.F Количество цифр в числе для определения
                  длины.Длина поля вычисляется как целая часть зна-
                  чения (digits+2)/2.
                  Eprecision.F Масштабный множитель,количество цифр в
                  дробной части.По умолчанию ноль (для представле-
                  ния целого данного).Может быть больше,чем коли-
                  чество цифр,но отрицательное значение не допуска-
                  ется.
                  
   EТип данныхF     Поле содержит число во внешнем формате ( т.е.сим-
   Eчисловой  F     вольное,а не 2-ное представление).Таким обра-
   EEXTERNAL  F     зом,этот тип идентичен CHAR (см.выше) с одним
                  исключением: использование DEFAULTIF.Если вы хо-
                  тите установить по умолчанию пустое поле,исполь-
                  зуйте CHAR,а если вы хотите установить ноль,ис-
                  пользуйте EXTERNAL.Числовое EXTERNAL м.б.
                  описано с длиной и ограничителем,так же,как
                  CHAR.Длина необязательна,но если она указана,то
                  отвергает значение длины из POSITION.
                  
                   INTEGER EXTERNAL [ ( length )] [ delimiter_spec ]
                   DECIMAL EXTERNAL [ ( length )] [ delimiter_spec ]
                   FLOAT   EXTERNAL [ ( length )] [ delimiter_spec ]
                  
   EТип данныхF     Поле представлено в виде строки двухбайтных симво-
   EGRAPHIC   F     лов (DBCS).ORACLE не поддерживает DBCS,однако
                  SQL*Loader будет считывать DBCS как обычную сим-
                  вольную строку и запоминать без изменения в ука-
                  занной колонке.Единственное отличие касается дли-
                  ны.Если вы используете POSITION (start:end),оно
                  определяет действительное положение поля в логи-
                  ческой записи.Однако,если вы указываете длину
                  после ключевого слова GRAPHIC,оно определяет дли-
                  ну в символах DBCS,поэтому фактическая длина поля
                  в байтах будет в 2 раза больше.
                  Если поле DBCS окружено ограничителями,используй-
                  те тип данных GRAPHIC EXTERNAL.Он отличается от
                  GRAPHIC только тем,что первый и последний символы
                  (ограничители) не загружаются.
                  
                    GRAPHIC EXTERNAL [ ( length ) ]
                  
                  EGRAPHIC.F Данные представлены в виде 2-байтных
                  символов.
                  EEXTERNAL.F Игнорируются первый и последний символы.
                  Elength.F Длина поля в 2-байтных символах.
                  Этот сложный механизм лучше всего обьяснить на
                  примере:
                  Пусть [] - ограничители,а # - любой 2-байтный
                  символ
                  Чтобы описать ####,используйте "POSITION (1:8)
                  GRAPHIC" или "POSITION (1) GRAPHIC (4)".
                  Чтобы описать [####],используйте "POSITION (1:10)
                  GRAPHIC EXTERNAL" или "POSITION (1) GRAPHIC
                  EXTERNAL (4)".
                                     
   EТип данныхF     Поле представлено в виде строки 2-байтных симво-
   EVARGRAPHICF     лов переменной длины.Длина задана в первых 2
                  байтах и представляет количество символов DBCS.
                  Удвоенная длина определяет количество читаемых
                  байтов.Можно оптимизировать размещение буферов,
                  указав после ключевого слова VARGRAPHIC длину.В
                  противном случае выделяется буфер длиной 4К байтов.
                  
                    VARGRAPHIC [ ( length ) ]
                  
   EОпределение   F Поля типов данных CHAR,DATE или числовой EXTERNAL
   Eсимвольных    F могут представляться с разделителями и ограничите-
   Eданных с      F лями,в качестве которых используются определенные
   EограничителямиF символы.Вы указываете эту возможность после опре-
                  деления типа данных.Используются 2 ключевых
                  слова - TERMINATED (с разделителем) и ENCLOSED
                  (c ограничителями).
                  Данное с разделителем читается с начальной позиции
                  поля ( которое может следовать непосредственно за
                  предыдущим полем) до тех пор,пока не встретится
                  символ-разделитель.Сам разделитель не включается
                  в значение поля.Если указано WHITESPACE,данное
                  читается до тех пор,пока не встретится символ
                  whitespace (пробел,табуляция,новая строка).За-
                  тем следующие соседние символы whitespace пропус-
                  каются без обработки.Это позволяет разделять от-
                  дельные поля группами символов whitespace.
                  Данное с ограничителями начинает считываться после
                  первого появления  ограничивающего  символа и про-
                  должается до второго появления.Если два ограничи-
                  вающих символа  следуют  непосредственно  друг  за
                  другом в считываемом данном,то единственный сим-
                  вол-ограничитель включается в значение данных.На-
                  пример,'DON''T'  запоминается как DON'T.Однако,
                  если поле содержит только 2 символа-ограничите-
                  ля,то его значение будет пустым.
                  
            [ TERMINATED [ BY ] { WHITESPACE | [X] 'char' } ]
            [ [ OPTIONALLY ] ENCLOSED [ BY ] [X] 'char' ]
                  
                  Можно указать предложение TERMINATED BY,предложе-
                  ние ENCLOSED BY или оба.В последнем случае поря-
                  док ключевых слов должен быть таким,как указан.
                  ETERMINATED.F Читает данное до первого появления
                  разделителя.
                  EOPTIONALLY.F Данные м.б. ограничены указан-
                  ными символами.Если SQL*Loader обнаруживает пер-
                  вое появление символа,он читает данные до второ-
                  го появления.В этом случае предложение TERMINATED
                  BY д.б. указано либо локально,либо гло-
                  бально в операторе FIELDS.
                  EENCLOSED.F Находит значение данного между двумя ог-
                  раничителями.
                  EBY.F Необязательное ключевое слово.
                          EWHITESPACE.F Разделителем считается любой символ
                  whitespace,включая прогон строки,прогон формы,
                  возврат каретки и т.п.(только для TERMINATED).
                  Echar.F Односимвольный разделитель или ограничитель.
                  EX'hex-byte'.F Односимвольный разделитель или огра-
                  ничитель в 16-ом формате со значением
                  ASCII.
                  Использование разделителей и ограничителей - это
                  единственный способ загрузить данные с хвостовыми
                  пробелами.
                  Если поле данных имеет длину 8 символов и содержит
                  значение DANIELbbb,где bbb - 3 пробела,то оно
                  будет загружено в ORACLE как "DANIEL",если объяв-
                  лено CHAR (8).Однако,если вы желаете сохранить
                  хвостовые пробелы,вы можете объявить его как
                  CHAR (8) TERMINATED BY ':' и добавить двоеточие в
                  файл данных,то есть представить поле в виде
                  DANIELbbb:.Теперь оно будет загружено в ORACLE
                  как "DANIELbbb" с сохранением пробелов.
                  
   EОпределениеF    Если вы хотите,чтобы все вставленные значения для
   Eпустых     F    некоторой колонки были пустыми,опустите целиком
   Eколонок    F    описание колонки.Либо вы можете установить пустое
                  значение для колонки в зависимости от некоторого
                  условия,сформулированного для логической записи.
                  Используйте ключевое слово NULLIF после типа дан-
                  ных и спецификации ограничителей,указав после не-
                  го условие таким же образом,как и в предложении
                  WHEN.Значение колонки будет установлено пустым,
                  если условие выполняется; в противном случае зна-
                  чение не будет изменяться.
                  
                    NULLIF field_condition
                  
                  Заметим,что условие м.б. рефлексивным,как
                  в следующем случае:
                  
          COLUMN1 POSITION (11:17) CHAR NULLIF (COLUMN1 = "unknown")
                  
                  Здесь значение для колонки сначала определяется из
                  файла данных,а затем м.б. установлено пус-
                  тым перед записью в таблицу.Это м.б. полез-
                  ным,если вы желаете вместо некоторых значений
                  данных установить пустое значение.
                  
   EУстановкаF      Если вы желаете присвоить числовым колонкам ноль,
   Eчисловых F      а не пустое значение,используйте предложение
   Eколонок  F      DEFAULTIF вместо предложения NULLIF.Если колонка
   Eв ноль   F      символьная,а не числовая,для нее удобно исполь-
                  зовать пустое значение,а не 0.Колонка м.б. одновременно с
                  NULLIF и DEFAULTIF,хотя это
                  в большинстве случаев излишне.
                  
                    DEFAULTIF field_condition
                                           
                  Заметим,что использование DEFAULTIF в данных
                  числовой EXTERNAL дает значение 0ь,в данных
                  CHAR дает пустое значение.
                  См."Указание условия для поля" для более подроб-
                  ной информации.
                  
E   Указание начала данных в управляющем файле F
                  Если ваши данные находятся в том же файле,что и
                  предложение LOAD DATA,вы должны поместить ключе-
                  вое слово BEGINDATA перед самой первой записью
                  данных,чтобы указать,что управляющая информация
                  закончилась и должна начинаться загрузка.
                  
                    BEGINDATA
                  
                  Если вы опустите это ключевое слово,SQL*Loader
                  попытается интерпретировать ваши данные как управ-
                  ляющую информацию,и вы получите сообщение об
                  ошибке.Если данные находятся в отдельном файле,
                  достижение конца управляющего файла указывает,что
                  управляющая информация закончилась,и ключевое
                  слово BEGINDATA не нужно.

+           E                  ПРИЛОЖЕНИЕ А
              ПРЕДУПРЕЖДЕНИЯ И СООБЩЕНИЯ ОБ ОШИБКАХ SQL*LOADER F
                  Сообщения об ошибках SQL*Loader имеют форму:
                     SQL*Loader-nnn: message
                  где nnn - код ошибки и message - текст сообщения
                  об ошибке.Ниже приведены коды и сообщения об
                  ошибках.
                
E   Коды 100-199: Ошибки командной строки F
           
          100  Syntax error on command line
               Синтаксическая ошибка в командной строке.
               Возможная причина - позиционные аргументы следуют
               после ключевых,неопределенные ключевые слова,не
               сбалансированы скобки или кавычки или символ
               whitespace между ключевым словом,'=' и аргументом.
          101  Invalid argument for username/password
               Неверный аргумент для пользователя/пароля.
          102  Invalid control file name on command line
               Неверное имя управляющего файла в командной строке.
          103  Invalid log file name on command line
               Неверное имя файла отчета в командной строке.
          104  Invalid bad file name on command line
               Неверное имя файла отброшенных записей в командной
               строке.
          105  Invalid data file name on command line
               Неверное имя файла данных в командной строке.
          106  Invalid discard file name on command line
               Неверное имя файла пропущенных записей в командной
               строке.
          107  Invalid maximum number of discards
               Неверное максимальное число пропущенных записей.
          108  Invalid number of logical records to load
               Неверное число загружаемых логических записей
          109  Invalid number of logical records to skip
               Неверное число логических записей,которые нужно
               пропустить до обработки.
          110  Invalid maximum number of errors
               Неверное максимальное число ошибок.
          111  Invalid number of rows for bind array
               Неверное число строк в связанном массиве.
          112  Invalid maximum bind array size
               Неверный максимальный размер связанного массива.
          113  Invalid silent mode option  Неверная опция для SILENT.
          114  Error in OPTIONS statement  Ошибка в операторе OPTIONS.
               
E   Коды 200-299: DB2,синтаксические ошибки и информационные сообщения F
           
          200  FORMAT clause should not be present - flat data
               files only SQL/DS format not supported here
               Предложение FORMAT не должно использоваться.
               ЗАМЕЧАНИЕ: 250-299 - информационные сообщения,а не
               сообщения об ошибках.
          250  Work data sets are not used by SQL*Loader
               Рабочие наборы данных SQL*Loader не использует.
          251  Sort devices are not used by SQL*Loader
               Устройства сортировки SQL*Loader не использует.
          252  Sort data sets are not used by SQL*Loader
               Наборы данных сортировки SQL*Loader не использует.
          253  DB2 partition number has no significance -- ignored
               Номер раздела DB2 не имеет значения -- игнорируется.
          
E   Коды 300-399: Синтаксические ошибки в управляющем файле F
           
          300  Control file line too long
               Строка управляющего файла слишком длинна.
          301  Token too long    Управляющая информация слишком длинна.
          302  Non-terminated quoted string constant found
               В символьной строке отсутствует правая кавычка.
          350  Syntax error at line n.    Синтаксическая ошибка в строке n.
               n - строка в управляющем файле,в которой обнаружена
               ошибка.За синтаксической ошибкой следует строка вида:
          
          Expecting x,found y
               где х - часть управляющей информации,которую ожидал
               SQL*Loader,а y - обнаруженная информация.Далее пе-
               чатается ошибочная строка управляющего файла,в кото-
               рой символом "^" или "*" отмечена ошибка.Например:
               
          SQL*Loader-350: Syntax error at line 28
          Expecting column name,found keyword CHAR.
          col3 ENCLOSED BY '"',CHAR ENCLOSED "'",
                                ^
E   Коды 400-499: Логические ошибки (синтаксис верный) F
           
          400  Record format only for data and control in same file
               Если данные в управляющем файле,то допускается толь-
               ко формат RECORD.
          401  End field position must be greater then or equal to start
               Конечная позиция поля д.б. больше либо равна начальной.
          402  Unable to determine length from column specification
               Невозможно определить длину из определения колонки.
          403  Referenced column x not present in table y
               Колонки x нет в таблице y.
          404  Column x present more than once in table y
               Колонка x встречается более одного раза в таблице y.
               Где х и y - это имена колонки и таблицы из управляющего файла.

E   Коды 500-599: Ошибки при открытии и чтении файлов F
          
          500  Unable to open control file (name)
               Невозможно открыть управляющий файл (имя).
          501  Unable to read control file (name)
               Невозможно читать управляющий файл (имя).
          502  Unable to open log file for write (name)
               Невозможно открыть файл отчета для записи (имя).
          503  Unable to open data file (name)
               Невозможно открыть файл данных (имя).
          504  Unable to read data file (name)
               Невозможно читать файл данных (имя).
          505  Actual physical record length greater than specified maximum
               Вы указали максимальную длину записи для типа
               VARIABLE,однако обнаружена запись с большей длиной.
          506  Unable to open bad file (name)
               Невозможно открыть файл отброшенных записей (имя).
          507  Unable to open discard file (name)
               Невозможно открыть файл пропущенных записей (имя).
               Указано имя файла,для которого возникла ошибка.
               
E   Коды 600-699: Ошибки,возникшие при загрузке F
          
          600  Specified maximum bind size too small for a single row
               Превышен размер памяти,выделенной для связанного
               массива при помощи ключевого слова BINDSIZE в команд-
               ной строке или оператора OPTIONS в управляющем файле.
          601  For INSERT option,table must be empty.Error on x
               Для опции INSERT таблица д.б. пустой.Ошибка
               в таблице x.
               Если вы хотите заменить данные в таблице,используйте
               ключевое слово REPLACE.Если вы хотите добавить дан-
               ные в таблицу,используйте ключевое слово APPEND.
               См.синтаксис INSERT | APPEND | REPLACE для более
               подробной информации.
        602  Maximum error count exceeded Превышено максимальное число ошибок.
               
E   Коды 620-639: Ошибки формата F
                                                   
               Это ошибки в данных,которые описаны операторами
               свободного формата (TERMINATED,ENCLOSED) в управляю-
               щем файле.Ошибки формата возникают,когда данные не
               соответствуют спецификации формата,т.е.делается по-
               пытка загрузить неверные данные в БД.Ошибки
               формата приводят к тому,что записи помещаются в файл
               отброшенных записей,так как не м.б. загружены.
          620  Initial enclosing character not found
               Символ-ограничитель не найден.
          621  Field in data file exceeds maximum specified length
               Длина поля в файле данных превышает указанный
               максимум.
          622  Logical record ended - no terminator character found
               Логическая запись закончилась - символ-терминатор
               не найден.
          623  Logical record ended - second enclosing character
               not present
               Логическая запись закончилась -- второй символ-огра-
               ничитель отсутствует.
          624  No terminator found after TERMINATED and ENCLOSED field
               Не найден символ-терминатор после поля с описанием
               TERMINATED и ENCLOSED.

E   Коды 640-699: Неисправимые ошибки ORACLE F
               Это ошибки,которые возникают при обращении к БД
               и делают невозможным продолжение выполнения
               SQL*Loader.Например,неправильное подключение к сис-
               теме,неправильные имена таблиц или колонок.Когда
               возникает такая ошибка,печатается код ошибки и сооб-
               щение,указывающее тип операции с БД.Печа-
               тается также имя таблицы и колонки,если эта информа-
               ция доступна.
                            
          640  Non-recoverable ORACLE error occured
               Неисправимая ошибка ORACLE.
          641  Error occured on SQL insert statement for table x
               Your use of column y is possibly in error
               Ошибка в операторе insert SQL для таблицы x.
               Возможно,вы неправильно используете колонку y.
          642  Error occured while verifying emptiness of table x
               Ошибка при проверке,является ли таблица x пустой.
               
          643  Error occured while trying to delete from table x
               Ошибка при попытке удалить строки из таблицы x.
               Когда вы используете ключевое слово REPLACE,все
               строки д.б. удалены перед загрузкой.Поэтому
               вы должны иметь привилегии DELETE для таблицы.
          644  Error occured on an attempt to commit
               Ошибка при попытке выполнить commit.
          645  Error occured while querying the count in table x
               Ошибка при поиске числа строк в таблице x.
          646  Error occured while querying maximum of x.y
               Ошибка при поиске максимального значения x.y
               где х и y - имена таблицы и колонки.
               
E   Коды 700-799: Фатальные ошибки F
                                                                 
          700  Out of memory while performing essential allocations
               Недостаточно оперативной памяти для основного размещения.
          701  Out of memory while allocating bing array
               Недостаточно оперативной памяти для размещения свя-
               занного массива.
          702  Internal error - call customer support...
               Внутренняя ошибка - обратитесь к администратору.

+           E                  ПРИЛОЖЕНИЕ B
                         ЗАМЕЧАНИЯ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ
                   УТИЛИТЫ ЗАГРУЗКИ БАЗЫ ДАННЫХ DB2 И DXT F
EДополнительные возможности SQL*Loader по сравнению с утилитой загрузки DB2F
                  SQL*Loader может использовать любой управляющий
                  файл утилиты загрузки DB2,а также обеспечивает
                  дополнительные возможности,поддерживая:
                  * тип данных DATE
                  * автоматическое формирование уникальных последо-
                    вательных ключей
                  * возможность явного указания длины записи
                  * загрузку данных из нескольких файлов различного
                    типа
                  * фиксированный формат,свободный формат и записи
                    переменной длины
                  * возможность разделять одну физическую запись на
                    несколько логических
                  * возможность формировать одну логическую запись
                    из нескольких физических при помощи CONCATENATE,
                    CONTINUEIF NEXT,CONTINUEIF THIS (IBM поддержи-
                    вает только CONTINUEIF THIS)
                  * более полную диагностику ошибок
                  * файл отброшенных записей (DB2 прекращает выпол-
                    нение при первой ошибке)
                  * управление числом загружаемых записей,записей
                    пропущенных до обработки,а также числом допус-
                    тимых ошибок
                  * несколько условий предложения WHEN
                  * предложение FIELDS для определения характеристик
                    поля по умолчанию.

E   Использование опции RESUME из DB2 F
                  Вы можете использовать синтаксис DB2 для RESUME,
                  однако возможно вы предпочтете использовать экви-
                  валентное ключевое слово SQL*Loader.См."Переза-
                  пись или добавление записей в существующую табли-
                  цу" для детальной информации об опциях SQL*Loader,
                  приведенных ниже:
                  Опции DB2      Опции SQL*Loader   Результат
                  
                  RESUME NO или   INSERT    Данные загружаются толь-
                  без RESUME                ко в том случае,если
                                            таблица пуста,иначе
                                            возвращается ошибка.
                  RESUME YES      APPEND    Новые данные добавляются
                                            к существующим данным в
                                            таблице.
                  RESUME NO       REPLACE   Новые данные полностью
                  REPLACE                   замещают существующие
                                            данные в таблице.
                    
  Ниже следует описание синтаксиса DB2.
                  Если загружаемая таблица уже содержит данные,вы
                  имеете 3 возможности для загрузки данных.Укажи-
                  те свой выбор,используя предложение RESUME.Аргу-
                  мент RESUME м.б. заключен в круглые скобки.
                  
                    RESUME       { YES | NO [ REPLACE ] }
                  
                  EYES.F Добавляет новые строки таблицы к существую-
                  щим.
                  ENO.F Требует,чтобы таблица была пустой перед заг-
                  рузкой.Если таблица содержит строки,выдается со-
                  общение об ошибке и выполнение прекращается (эта
                  возможность используется по умолчанию).
                  ENO REPLACE.F Удаляет все данные в таблице перед
                  загрузкой новых данных,т.е.старые данные будут
                  заменены новыми.Этот аргумент требует,чтобы
                  пользователь,вызывающий SQL*Loader,имел полномо-
                  чия DELETE для таблицы.Вы не можете восстановить
                  данные,которые содержались в таблице до загрузки,
                  если только они не были сохранены утилитой EXPORT
                  или каким-нибудь другим способом.
                          В SQL*Loader вы можете использовать одно предложе-
                  ние RESUME для всех загружаемых таблиц,помещая
                  его перед всеми предложениями INTO TABLE.Либо вы
                  можете указать опцию для отдельной таблицы,поме-
                  щая ее после требуемого предложения INTO TABLE.
                  В первом случае опция действует для всех таблиц,
                  не имеющих своих собственных опций.
                                            
E   Обеспечение совместимости F
                  Утилита загрузки DB2 корпорации IBM содержит неко-
                  торые элементы,отсутствующие в SQL*Loader.Напри-
                  мер,DB2 сортирует индексы с использованием
                  внешних файлов и определение этих файлов может
                  быть включено в операторы загрузки.Для совмести-
                  мости с загрузчиком DB2 SQL*Loader обрабатывает
                  эти опции,но игнорирует их,если они бессмысленны
                  с точки зрения ORACLE.Следующие синтаксические
                  элементы допускаются,но игнорируются SQL*Loader.
    EОператор LOGF  Этот оператор включен для совместимости с DB2.Он
                  обрабатывается,но игнорируется SQL*Loader.(Эта
                  опция не оказывает никакого действия на файл отче-
                  та,создаваемый SQL*Loader).DB2 использует файл
                  отчета для восстановления после ошибок и может
                  создавать либо не создавать его.
                  SQL*Loader использует в этих случаях журнал защиты
                  ORACLE,который может создаваться либо не созда-
                  ваться как опция для теплого старта.
                   
                     [ LOG { YES | NO } ]
  
    EОператорF      Этот оператор включен для совместимости с DB2.Он
    EWORKDDN F      обрабатывается,но игнорируется SQL*Loader.В DB2
                  этот оператор объявлял временный файл для сорти-
                  ровки.
                  
                    [ WORKDDN filename ]

    EОператоры F    Операторы SORTDEVT и SORTNUM включены для совмес-
    ESORTDEVT иF    тимости с DB2.В DB2 эти операторы указывали чис-
    ESORTNUM   F    ло и тип временных файлов для сортировки.
                  
                     [ SORTDEVT device_type ]
                  
                     [ SORTNUM n ]
                  
    EСпецификацияF  Обработка нескольких файлов требует,чтобы предло-
    EDISCARD     F  жение DISCARD размещалось в различных местах уп-
                  равляющего файла (после определения каждого файла
                  данных).Однако при загрузке единственного совмес-
                  тимого с DB2 файла эти предложения должны нахо-
                  диться на их старых позициях: между предложениями
                  RESUME и RECLEN.Заметим,что нуль (0) в опции
                  DISCARD утилиты загрузки DB2 означает неограничен-
                  ное число пропущенных записей,в то время как нуль
                  (0) для SQL*Loader означает остановить обработку
                  на первой пропускаемой записи.
                  
E   Ограничения  F
                  Некоторые возможности загрузчика DB2 недопустимы
                  для SQL*Loader.Например,SQL*Loader не загружает
                  данные ни из SQL/DS файлов,ни из DB2 UNLOAD фай-
                  лов.SQL*Loader возвращает ошибку при обнаружении
                  следующих команд утилиты загрузки DB2.
                  
    EОператорF      Оператор FORMAT из DB2 не должен находиться в упра-
    EFORMAT  F      вляющем файле,который используется SQL*Loader.
                  Загрузчик DB2 загружает файлы формата SQL/DS и DB2
                  UNLOAD так же,как и файлы формата утилиты загруз-
                  ки DB2.SQL*Loader не поддерживает эти форматы.
                  Если эта опция встретится в управляющем файле,
                  SQL*Loader завершится с ошибкой (IBM не описывает
                  формат этих файлов,поэтому SQL*Loader не может
                  распознать его).
                  
                    FORMAT { UNLOAD | SQL/DS }

    EОператорF      Оператор PART включен для совместимости с DB2.
    EPART    F      В ORACLE нет понятия,сответствующего понятию раз-
                  деленной таблицы DB2.В SQL*Loader таблица читает-
                  ся целиком; выдается предупреждение,указывающее,
                  что разделенные таблицы не поддерживаются,и затем
                  загружается вся таблица.
                  
                     [ PART n ]
                  
    EОпция F        Элемент SQL/DS='tablename' не должен использовать-
    ESQL/DSF        ся в предложении WHEN.SQL*Loader не поддерживает
                  внутренний формат SQL/DS,поэтому опция SQL/DS в
                  этом предложении приведет к ошибке и завершению
                  SQL*Loader.
                  
    EГрафическиеF   Так как ORACLE не поддерживает строки двухбайтных
    Eстроки DBCSF   символов (DBCS),графические строки формата G'**'
                  не допускаются.

+          E                  ПРИЛОЖЕНИЕ С
                     ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА SQL*LOADER F
                  Следующие зарезервированные слова SQL*Loader д.б. заключены
                  в кавычки,если вы желаете ис-
                  пользовать их как имена таблиц или колонок при вы-
                  полнении SQL*Loader.
                        
                     AND               EXTERNAL        RECLEN
                     APPEND            FIELDS          RECNUM
                     BADDN             FIXED           RECORD
                     BADFILE           FLOAT           REPLACE
                     BEGINDATA         FORMAT          RESUME
                     BLOCKSIZE         GRAPHIC         SEQUENCE
                     BY                INDDN           SMALLINT
                     CHAR              INFILE          SORTDEVT
                     CONCATENATE       INSERT          SORTNUM
                     CONSTANT          INTEGER         SQL/DS
                     CONTINUEIF        INTO            STREAM
                     COUNT             LAST            TABLE
                     DATA              LOAD            TERMINATED
                     DATE              LOG             THIS
                     DECIMAL           MAX             UNLOAD
                     DEFAULTIF         NEXT            VARCHAR
                     DISCARDDN         NO              VARGRAPHIC
                     DISCARDFILE       NULLIF          VARIABLE
                     DISCARDMAX        OPTIONALLY      WHEN
                     DISCARDS          OPTIONS         WHITESPACE
                     DOUBLE            PART            WORKDDN
                     ENCLOSED          POSITION        YES

                               E    ИНДЕКС F
                                    E А F
    Аргументы командной строки
      ключевые  44
      позиционные  44
      по умолчанию  43
      BAD  43,45
      BINDSIZE  43,47
      CONTROL  43,45
      DATA  43,45
      DISCARD  43,46
      DISCARDMAX  43,46
      ERRORS  43,46
      LOAD  43,46
      LOG  43,45
      ROWS  43,47
      SILENT  43,47,53
      SKIP  43,46,53,67
      USERID  43,45
       
                                   E Б F
    База данных
      демонстрационная  20
      определение  45
      откат  17
      пароль  45
      подготовка к загрузке  14
      подключение OPS$  45
      удаленная  45
    Буфер  55,60
      размер  47,60,72,74
                  
                                   E В F
    Входная информация SQL*Loader  12
    Выходная информация DXT  11
    Выходная информация SQL*Loader  15,49
       
                                   E Д F
    Данные  13
      в управляющем файле  21,76
      2-ые фиксированные в формате полуслова  72
      2-ые фиксированные в формате слова  72
      2-ые плавающие двойной точности  72
      2-ые плавающие простой точности  72
      10-е упакованные  72
      длина  70
        по умолчанию  70,71
      нулевые  26,67,73,75
      преобразование  70
      символьные  13,74
      смещение  69
      с ограничителями  13,54,71,74
      с разделителем  13,54,71,74
      точность  72
    Дистрибутивный носитель  7,20
    Длина
      записи переменная  55
      байты  74
      поле  71
                  
                                   E З F
    Загрузка
      даты  28,71
      нескольких таблиц за один прогон  20,36
      отрицательных значений  33
      по условию  18,65
      с замещением данных 59,84
      с ленты  11,55
      с опцией RESUME  84
    Записи
      выбор для загрузки  65
      длинные  60
      логические  14
      отброшенные  17,56
        критерий  17
        максимальное количество 46
        разрешение загрузки всех  46
      переменной длины  13
      пропущенные  18,46,57
        критерий  18,57
        максимальное количество  46,59
        прекращение обработки на первой  59
        разрешение загрузки всех  59
      пропущенные до обработки  46
      физические  14
        соединение  32,61,63
      фиксированной длины  13
    Зарезервированные слова SQL*Loader  88
                  
                                   E И F
    Имя пользователя ORACLE  45
    Индекс  14,85
      уникальный  32
                  
                                   E К F
    Кластеры  14
    Ключевое слово
      BADDN  57
      BADFILE  57
      BEGINDATA  52,76
      BLOCKSIZE  54
      CONCATENATE  61
      CONSTANT  52,66,67
      CONTINUEIF 52,61
        примеры использования  63,64
      COUNT  68
      DISCARDDN  58
      DISCARDFILE  58
      ENCLOSED  52,54,66,74
      FIELDS  66
      FIXED  52,54
      INDDN 52,54
      INFILE  52,54
      MAX  68
      OPTIONS  68
      RECLEN  60,86
      RECNUM  66,67
      RECORD  55
      STREAM  54
      TERMINATED  52,54,66,70
      VARIABLE  52,54
      WHITESPACE  52,54,66,74,75
    Колонка таблицы  24
      имя  66
      непустое значение (NOT NULL)  33
      уникальное значение  28
        формирование  11,68
      установка в нуль  75
    Команда SQLLOAD  43
      ввод аргументов  44
      вывод опций  43
      параметры по умолчанию  43
    Комментарии
      в управляющем файле  28,29,51
      в файле данных  51
    Константа  67
                  
                                   E М F
    Маска даты  71
    Массив связанный (bind array)  43
      размер  43,47
    Масштабный множитель  72
                  
                                   E О F
    Оператор
      сравнения  53,62,66
      FORMAT  86
      PART  87
      SORTDEVT  86
      SORTNUM  86
      WORKDDN  85
    Операция commit  49
    Опция
      APPEND  59,84
      DISCARDS  47
      INSERT  59,84
      REPLACE  60,84
      RESUME  84
      SILENT  43,47
        ключевые слова  47
      SQL/DS  87
    Ошибки  49,77
      в данных  46
      восстановление  85
      порядка  40
      сообщения  11,77
      ORACLE  17,49,82

                                   E П F
    Поле
      длина  62,70
      начальная позиция  53,62,65,69
      продолжения  62
        в последней непустой позиции  62
      пустое  25,75
      сравнения  65
      условие  53,65
    Полномочия
      DELETE  60,84
      INSERT  14,64
    Предложение
      DEFAULTIF  65,75
      INTO TABLE  64
      LOAD DATA  52
      NULLIF  18,65,75
      POSITION  69,71,73
        опустить  69
        переустановить на текущую запись  69
      WHEN  18,65
    Представление пользователя (view)  14
    Пробелы  75
      загрузка  75
      хвостовые  75
    Пустое знач  18,67
                  
                                   E Р F
    Расширение имени файла
      BAD  45,56
      CTL  45
      DAT  45
      DSC  18,46,58
      LOG  45
       
                                   E С F
    Символ
      новая строка  13
      ограничитель  13,66,74
      продолжения  15
      разделитель  13
      DBCS  73,87
      whitespace  74,75
    Сообщения SQL*Loader  49
    Сортировка в DB2 при загрузке  86
                  
                                   E Т F
    Таблицы
      демонстрационной БД  20
        DEPT  20
        EMP  20
      загрузка другим пользователем  64
      значение ключа  11
        формирование  30,68
      колонки  24
      разделенные в DB2  87
    Тип данных
      СHAR  71
        cвободный формат  71
      DATE  71
        cвободный формат  71
      DECIMAL  72
      DOUBLE  72
      EXTERNAL  73
        c разделителем  73
        числовой  73
      FLOAT  72
      GRAPHIC  73
      INTEGER  72
      SMALLINT  72
      VARCHAR  71
      VARGRAPHIC  74
                  
                                   E У F
    Установка SQL*Loader  12
    Утилита загрузки
      DB2 (DB2 Load Utility)  11,12
      ODL (ORACLE Data Loader)  11
                  
                                   E Ф F
    Файл
      данных (data file)  13,54
        имя  54
        несколько  55
        режим чтения  54
      отброшенных записей (bad file)  11,17,56
      отчета 11,15
      пропущенных записей (discard file)    11,18,57
        имя по умолчанию  18,46,58
        критерий  18
        создание  57
      управляющий (control file)  12
        подавление печати заголовка  47
        содержащий данные для загрузки  20,54
        указание аргументов  53
      CASE1.CTL  7,20,21
      CASE2.CTL  7,20,24
      CASE2.DAT  7,20,24
      CASE3.CTL  7,20,28
      CASE4.CTL  7,20,32
      CASE4.DAT  7,20,32
      CASE5.CTL  7,20,36
      CASE5.DAT  7,20,36
    Фильтрация записей при загрузке  11
    Формат данных
      внешний  13,70
     2-й 13
      переменный  13
      символьный  13
      фиксированный  13
    Формирование
      логической записи из физических  14,61,63
      уникального последовательного номера  11,68
    Функция
      SEQUENCE  30,66,68
        начальное значение  68
        шаг изменения  68
       
                                   E S F
    SQL*Loader
      возможности  11
    SQL*NET  45
    SQL/DS (формат файла DB2)  86,87
                  
                                   E U F
    UNLOAD (формат файла DB2)  86

KOAP Open Portal 2000



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