Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Получение файла на сервер Оракла через пакеты


Автор: Nuzur 15.4.2008, 17:37
Есть 2 сервера видят друг друга по ап-пи адресам. Нужно перегнать файл с одного сервера на другой, щар нет, фтп тоже, подскажите пожалуйста как решить такую задачу.

Автор: LSD 15.4.2008, 18:18
Для начала бы неплохо почитать правила раздела, особенно пункт про указание версии сервера.

Если сервер поддерживает, то можно через UTL_TCP или Java.

Автор: Nuzur 16.4.2008, 10:16
LSD, Прошу прощенья, Сервер 9.
В данной задаче пытаюсь решить созданием временной таблицы с полями BLOB. На веб стороне сделают истерт в нее и там уже буду думать.
Вопрос по теме можна ли в Оракл "симулировать" работу с внутренним BLOB объектом как будто бы он работает с бинырным файлом?  

Автор: LSD 16.4.2008, 11:40
Цитата(Nuzur @  16.4.2008,  11:16 Найти цитируемый пост)
В данной задаче пытаюсь решить созданием временной таблицы с полями BLOB. На веб стороне сделают истерт в нее и там уже буду думать.

Ты там что-то непонятное мутишь, объясни задачу поподробней. Зачем временная таблица, чем временные BLOB-ы не устраивают?


Цитата(Nuzur @  16.4.2008,  11:16 Найти цитируемый пост)
Вопрос по теме можна ли в Оракл "симулировать" работу с внутренним BLOB объектом как будто бы он работает с бинырным файлом?

Работа с BLOB не сильно отличается от работы с BFILE.

Автор: Nuzur 16.4.2008, 12:36
Задача такова.
Есть пакет который на вход принимает путь и имя файла, благодаря чему открывает бинарный файл, парсит его, и через d-sql записывает в таблицу. 
Есть 2 сервера на одном сервер-приложения на другом сервер-БД. Друг друга они видят только через IP. Никаких общих дисков, шар, фтп и тому подобных вещей. Соответственно на стороне БД невозможно увидеть файл и соответственно работать с ним из пакета.
В результате: 
Необходимо передать некий файл с сервер-приложения на сервер-БД для использования выше упомянутого пакета.

Моя идея.
Передать с сервер-приложения на сервер-БД бинарный файл с помощью INSERT в таблицу с полями BLOB. Изменить пакет так что бы он принимал на вход ИД записи таблицы BLOB или как IN NOCOPY, это не важно ибо перед ним стоит моя функция. И пакет открывал и работал с ним как и раньше, тоесть что бы не менять логику пакета.

Но проблема в том, что в пакете реализована логика обмена информацией между процедурами и функциями пакета как IN BFILE.
Соответственно вопрос у кого какие идеи smile Тут основной момент в функциях используемых при работе с BFILE и BLOB, насколько они "одинаковые". Тоесть если они одинаковые или как написал уважаемый LSD не сильно отличаться то я переправлю пакет и все будет хорошо. Но если отличия колоссальны то буду искать другой путь. Просто не с тем не с другим я толком не работал. Уже много нагуглил вроде моя идея правильно, но все же хочеться услышать мнения профессионалов. 

Заранее благодарен, прошу прощенья за внесения неразберихи в теме.

Автор: LSD 16.4.2008, 13:13
Ну сохранять данные в файл, а потом их скармливать процедуре действительно не очень хорошая идея. Лучше действительно переписать пакет (там по идее переделывать немного). BFILE это просто один из видов LOB и процедуры чтения записи, принимают все три вида LOB-ов.

Автор: DimW 16.4.2008, 14:50
Цитата(Nuzur @  16.4.2008,  12:36 Найти цитируемый пост)
Есть пакет который на вход принимает путь и имя файла

ну а если немного подправить пакет и на вход передовать не путь к файлу, а сам файл с апп сервера.


Автор: Nuzur 16.4.2008, 15:55
Да всем спасибо, уже все переправил. Действительно разница была не велика.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)