Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Генерация кода control file для SQL*Loader на клиенте в Oracle Warehouse Builder  [new]
Valera S
Member

Откуда: из подмосковной тайги
Сообщений: 26
Hi, all!
Необходимо загрузить данные из текстовых файла в таблицы oracle.
Это часть большого проекта, реализуемого на Oracle Warehouse Builder (OWB) 10.2.
Репозиторий OWB и Oracle Target Scheme установлены на servere SunOS,
клиент OWB - на WinXP.
Деплой модуля мэпинга переноса данных из текстового файла в таблицу происходит без ошибок.
При попытке выполнения модуля из OWB получаю
Log Error
RPE-01013: SQL Loader reported error condition, number 1.

SQL*Loader: Release 10.2.0.1.0 - Production on Mon Jul 2 11:06:47 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL*Loader-500: Unable to open file (/opt/oracle/product/10.2.0/owb/owb/bin/unix/F:ProjectsTFBDB2DIM_REGION1_E.ctl)
SQL*Loader-553: file not found
SQL*Loader-509: System error: No such file or directory


При этом на сервере в /opt/oracle/product/10.2.0/owb/owb/bin/unix/
генериться ctl файл F:\Projects\TFB\DB2\DIM_REGION1_E.ctl

Если взять текст ctl файла из окна "Generate" и запустить SQL*Loader на станции вручную,
с соответствующими параметрами коннекта, данные грузятся без проблем.
Да, забыл отметить, что текстовые файлы лежат тоже на станции.
Судя по версии запускаемого SQL*Loader'a (10.2.0.1.0) он при запуске из OWB
также стартует на станции, т.к. на сервере стоит версия (10.2.0.3.0).

В параметрах мэпинга стоит
Language = SQL*Loader
...
Control File Location = локейшн, указывающий на локальный каталог F:\Projects\TFB\DB2
Control File Name = xxx
Log File Location = локейшн, указывающий на локальный каталог F:\Projects\TFB\DB2
Log File Name = yyy
...


Загрузка должна выполняться именно со станции, таковы условия проекта.
Вопрос в том, как настроить параметры мэпинга, модуля или еще_не_знаю_чего, чтобы
можно было нормально запустить мэпинг именно со станции, т.е. для этого OWB должен
сгенерить ctl файл на станции, а не на сервере.

Thanx before for answers.
3 июл 07, 12:05    [4342866]     Ответить | Цитировать Сообщить модератору
 Re: Генерация кода control file для SQL*Loader на клиенте в Oracle Warehouse Builder  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63951
Блог
Valera S
Control File Location = локейшн, указывающий на локальный каталог F:\Projects\TFB\DB2

А сам локейшн об этом знает? Сомневаюсь, признаться.

Valera S
Загрузка должна выполняться именно со станции, таковы условия проекта.
Вопрос в том, как настроить параметры мэпинга, модуля или еще_не_знаю_чего, чтобы
можно было нормально запустить мэпинг именно со станции,

Думаю, никак. Подумайте сами: за выполнение мэппингов ответственна рантайм платформа. Рантайм платформа стоит на сервере. Каким образом эта рантайм платформа залезет на непонятнокакую работую станцию и запустит на ней sql*loader? Что касается "похоже, запускается loader с рабочей станции" - очень сомневаюсь, признаться, хотя тут надо не сомневаться, а просто проверить.

Так или иначе, в рабочем режиме запускать эту загрузку не с сервера Вы сможете только руками.

P.S. Я занимался OWB, но не использовал ctl-маппингов; отвечаю исходя из общих архитектурных соображений. Прошу прощения, если именно в случае ctl там есть какой-то трюк.
3 июл 07, 12:14    [4342941]     Ответить | Цитировать Сообщить модератору
 Re: Генерация кода control file для SQL*Loader на клиенте в Oracle Warehouse Builder  [new]
Valera S
Member

Откуда: из подмосковной тайги
Сообщений: 26
softwarer
Valera S
Control File Location = локейшн, указывающий на локальный каталог F:\Projects\TFB\DB2

А сам локейшн об этом знает? Сомневаюсь, признаться.

Не понял, откуда сомнения?
Именно из этого этого локейшна без проблем импортируются плоские файлы.

Это и наталкивает на мысль о том, что если файлы импортируются с клиента, то и лоадер их может оттуда же подцепить.
А если лоадер запускает рантайм платформа на сервере, то этого локейшна оттуда точно не видно!
Пробовал указывать локейшн на расшаренный ресурс клиентской станции - тоже не прокатывает.

softwarer
Так или иначе, в рабочем режиме запускать эту загрузку не с сервера Вы сможете только руками.

Трудно поверить, что для загрузки данных из плоского файла на клиенте нужно проделать следующие сложные движения (описываются только имеющие значение в обсуждаемом контексте шаги):
1. Создать локейшн, указывающий на локальный ресурс.
2. Импортировать плоский файл, используя локейшн из п.1.
3. Создать мэпинг, копирующий данные из плоского файла в таблицу.
4. Вручную сгенерировать текст ctl файла и сохранить его на клиенте.
5. Вручную создать на клиенте bat файл для запуска лоадера с ctl файлом из п.4
6. Создать модуль Process Flow для запуска bat файла из п.5

п 4-6 очевидно лишние. В этом случае гораздо проще написать bat файл вручную и не искать на свою за...цу гемора с OWB.
3 июл 07, 13:16    [4343455]     Ответить | Цитировать Сообщить модератору
 Re: Генерация кода control file для SQL*Loader на клиенте в Oracle Warehouse Builder  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63951
Блог
Valera S
softwarer
А сам локейшн об этом знает? Сомневаюсь, признаться.

Не понял, откуда сомнения?
Именно из этого этого локейшна без проблем импортируются плоские файлы.

Полагаю, Вы имеете в виду "берутся в клиента", а не импортируются.

Сколь мне помнится, location имеет разные настройки для дизайн-тайма и для каждого runtime repository. В дизайн-тайме Вы настраиваете locationы для импорта метаинформации, а при деплое используются настройки соответствующего рантайма.

Valera S
Это и наталкивает на мысль о том, что если файлы импортируются с клиента, то и лоадер их может оттуда же подцепить.

Я не очень понимаю, что Вы имеете в виду под "импортируются". Если "отображаются в клиенте и позволяют мышкой нарисовать ctl-файл" - то совершенно зря наталкивает. Чудес не бывает.

Valera S
А если лоадер запускает рантайм платформа на сервере, то этого локейшна оттуда точно не видно!

Задам вопрос так - а кто еще может его запустить? Процесс инициируется с сервера. Следовательно, чтобы запустить что-либо где-либо еще, нужен во-первых соответствующий агент - RPC чи шо - а во-вторых, настройка на сервере "где этот агент и как к нему стучаться". Я таких агентов в составе OWB не видел, и уверен, никаких подобных настроек Вы не делали. Или делали?

Valera S
п 4-6 очевидно лишние. В этом случае гораздо проще написать bat файл вручную и не искать на свою за...цу гемора с OWB.

Cкажу Вам по секрету, в свою бытность прелести Process Flow и всего связанного я не прочувствовал.
3 июл 07, 13:38    [4343645]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить