Импорт и экспорт данных это конечно здорово! А, как вообще после создания БД, в нее "залить" данные из уже имеющейся БД (например Microsoft Access или Microsoft SQL Server - дай бог здоровья Билу!)? Какие данные и в каком виде можно отправлять в БД Oracle? Все очень просто, в Oracle есть такой инструмент, как SQL*Loader. На первый взгляд он может показаться примитивным и каким-то не серьезным, но это только на первый взгляд! Но тем не менее загрузчик SQL*Loader может получать данные следующим образом:
Обычно для начала работы вызывается загрузчик из командной строки по одному из следующих имен: sqlldr, sqlload, sqldr80.
В разных операционных системах, могут быть разные имена загрузчиков SQL*Loader. Итак, давайте попробуем для начала получить список параметров SQL*Loader. Для удобства я создал bat файлик следующего содержания:
\\.. .bat -> set nls_lang=russian_cis.ru8pc866 sqlldr.exe >helloader.txt
А, вот содержимое файла helloader.txt:
. . Синтаксис: SQLLDR ключ.слово=значение [,ключ.слово=значение,...] Допустимые ключевые слова: userid -- ORACLE username/password control -- Control file name log -- Log file name bad -- Bad file name data -- Data file name discard -- Discard file name discardmax -- Number of discards to allow (По умолчанию - все) skip -- Number of logical records to skip (По умолчанию 0) load -- Number of logical records to load (По умолчанию - все) errors -- Number of errors to allow (По умолчанию 50) rows -- Number of rows in conventional path bind array or between direct path data saves (По умолчанию: условный маршрут - 64, прямой маршрут - ALL) bindsize -- Size of conventional path bind array in bytes (По умолчанию 256000) silent -- Suppress messages during run (header,feedback,errors,discards,partitions) direct -- use direct path (По умолчанию FALSE) parfile -- parameter file: name of file that contains parameter specifications parallel -- do parallel load (По умолчанию FALSE) file -- File to allocate extents from skip_unusable_indexes -- disallow/allow unusable indexes or index partitions (По умолчанию FALSE) skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable (По умолчанию FALSE) readsize -- Size of Read buffer (По умолчанию 1048576) external_table -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE (По умолчанию NOT_USED) columnarrayrows -- Number of rows for direct path column array (По умолчанию 5000) streamsize -- Size of direct path stream buffer in bytes (По умолчанию 256000) multithreading -- use multithreading in direct path resumable -- enable or disable resumable for current session (По умолчанию FALSE) resumable_name -- text string to help identify resumable statement resumable_timeout -- wait time (in seconds) for RESUMABLE (По умолчанию 7200) date_cache -- size (in entries) of date conversion cache (По умолчанию 1000) Примечание: параметры командной строки могут быть заданы, либо по позициям позиции или по ключевым словам. Примером предыдущего случая является 'sqlldr scott/tiger foo'; а во втором случае: 'sqlldr control=foo userid=scott/tiger'. Параметры, заданные по позициям, могут стоять перед, но не после параметров, заданных ключевыми словами. Например запись 'sqlldr scott/tiger control=foo logfile=log' разрешен, а 'sqlldr scott/tiger control=foo log' не разрешен, несмотря на то, что позиция параметра 'log' является правильной. . .
Для более полного понимания приведу перевод назначения параметров, который вы в дальнейшем можете использовать как справку! Хотя поучить английский тоже не помешает! Так как без него как без рук! Итак:
Последние семь параметров мы рассмотрим чуть позже в процессе, а пока, то что, мы с вами рассмотрели хватит для того, чтобы начать работать с SQL*Loader-ом. Для начала, я думаю достаточно, далее мы продолжим разбирать, как все это работает и будем использовать этот шаг еще многократно!