powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема при передаче конвертации поля Long в Blob
43 сообщений из 43, показаны все 2 страниц
Проблема при передаче конвертации поля Long в Blob
    #40037359
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Умеется удаленная база с картинками, к которой идет обращение по линку.

Написана функция, которая берет поле и с помощью pipe row конвертирует в Blob. Впоследствии сохраняется в таблице в моей схеме.

Возникла проблема. Фото в Longe, больше 32к режутся. И передаются частично, в результате чего, картинка сохраняется наполовину (либо совсем все серое)

Как нормально конвертировать из raw long в blob без потери части изображения?
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037364
qlost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TO_LOB() пробовали?
кстати, удалённая база - Oracle или что-то другое?
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037367
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНаталья,

нормально, это to_lob , но учтите, что это sql ddl функция
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037369
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНаталья,

а зачем плодите темы ?

понял, пересдача
авторспасибо, на одна из пунктов лаборототной работы состоит в том, чтобы взять удаленную таблицу и скопировать в локальную базу без ошибок.
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037538
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,
ну тему можно закрыть, вопрос с конвертацией, а чем говорит заголовок , решен.

Вопрос с урезкой фото остается открытым.

Нет, не пересдача.
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037540
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qlost,

вторая - FIreBird
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037577
qlost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на этом форуме есть ветка FireBird, в которой постоянно присутствуют его разработчики. Думаю, вам туда.
И гуглить про драйвер связи оракл->firebird.
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037578
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlostна этом форуме есть ветка FireBird, в которой постоянно присутствуют его разработчики.
Думаю, вам туда.

Нет, там никак не помогут изменить тот факт, что оракуловский HS интерпретирует ODBC тип
LONGVARBINARY как LONG вместо BLOB. В этой ветке тоже не помогут. Тут надо реквест
непосредственно в корпорацию Оракул посылать чтобы исправили наконец это дерьмо мамонта.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037604
qlost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
реквест непосредственно в корпорацию Оракул

Я хоть и не пробовал, но подозреваю, что это сродни письму в спортлото.
Надо методом научного подтыкивания найти подходящую пару типов в обеих БД, чтоб в итоге заиметь устраивающий результат.
Увы, не пользуюсь Firebird-ом уже более 12 лет, подсказать не смогу.
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037615
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самым простым способом решения проблемы в данном случае будет исключить из картины Оракул
и работать с удалённой базой непосредственно, без использования линков.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037621
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
это к сожалению невозможно.
Никаких правок в удаленную БД я не могу сделать.
Поэтому и хочу создаю копию таблицы локально.
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037629
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, не линк, а экспорт/импорт, пусть и регулярный?
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037641
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm,
не совсем понимаю.
Можно пример?
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037643
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНаталья,

Джаву не предлагать?
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037681
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНатальяэто к сожалению невозможно.
Никаких правок в удаленную БД я не могу сделать.

Для работы SELECT никакие правки не нужны.

И таки всегда возможно установить Firebird локально, это не требует огромного бюджета.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037714
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно пример?

Экспорт по расписанию из базы-источника. Содержание экспорта определяете сами из потребностей бизнес-логики - только новые данные, новые + изменившиеся + удаленные + ...

Импорт по расписанию в БД-приемник.

На обоих этапах любой контроль/преобразование данных.

По сути, это обход механизма dblink, из-за того, что существующие возможности HS вас не устраивают. Но в 99% случаев задачу можно решить, разобравшись в HS и адаптировав передаваемые данные.


На Java, как уже советовали, можно черта лысого написать.
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037716
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

можно попробовать
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40037767
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для чего нужен дблинк?
Ведь куда проще и без сабжевого геморроя можно просто подключаться к 2 базам сразу из клиентской программы. И доставать из одной, а затем укладывать в другую.
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40038096
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНаталья,

а что, если для загрузки BLOB'a из Firebird'a воспользоваться 1) его нарезкой на кусочки, 2) их последующим скачиванием и 3) склейкой в оракловский BLOB ???

Код: plsql
1.
SELECT SUBSTRING(blob1 FROM 1 FOR 32000) FROM t1
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40038101
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася,

А что, хорошая мысль, прогнать весь объём накопленных лобов через клиента! Дважды.
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40038106
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry Sibiryakov
Нет, там никак не помогут изменить тот факт, что оракуловский HS интерпретирует ODBC тип
LONGVARBINARY как LONG вместо BLOB.
а если делать `insert into tmp_table select from t@dblink` прежде всех манипуляций и уже с локальным работать, то все равно не поможет?
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40038121
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envпрогнать весь объём накопленных лобов через клиента! Дважды.

Зачем весь-то? Аффтарша что, каждую фотографию редактировать собралась?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40038128
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,
1. где у автора сказано обо всём объёме накопленных LOB'ов?
2. даже если это так, то один раз не страшно (тем паче что дблинк по сути тоже "клиент"), ведь прогу можно положить рядом с одним из серверов, если уж присутствуют сетевые сложности
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40038860
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильный Вася,
так исторически сложилось, и я не в силах что-то здесь меня.
Поставлена задача - вытянуть фото с удаленного сервера.
Надо сделать =)
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40038986
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНатальяоставлена задача - вытянуть фото с удаленного сервера.

Куда? На экран приложения? Так и вытягивайте с удалённого сервера, Оракул-то тут зачем?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039021
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtender,

нет, так как получаю ошибку "illegal use of LONG datatype"
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039022
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

картинки будут использоваться с дальнейших запросах
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039024
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
where цвет пятого пикселя восьмого ряда = зелёный?
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039027
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНатальякартинки будут использоваться с дальнейших запросах

"Чо?" (с)

Что (кроме окостенелости мозга) мешает Вам использовать картинки в запросах к оригинальной
базе вместо оракуловской копии?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039074
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНаталья, просто процитирую себя, вдруг пропустили мой пост

Кроик Семён
WНаталья,

а что, если для загрузки BLOB'a из Firebird'a воспользоваться 1) его нарезкой на кусочки, 2) их последующим скачиванием и 3) склейкой в оракловский BLOB ???

Код: plsql
1.
SELECT SUBSTRING(blob1 FROM 1 FOR 32000) FROM t1

...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039302
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

1. там где бд на FB, используется чуть ли не телефонное подключение к интернету. У меня обычный запрос на выборку 20 записей выполняется около 10 минут.

2. картинки нужны в локальной БД, запросы для поддержки будут выполняться именно к ней. Так как id фото связывает кучу дополнительных таблиц, их которых нужна инфа.
И дополнительно добавлять коннект еще у супер медленной БД из приложения + коннект к локальной....
а если еще какой-нибудь inner join сделать приедаться... то можно смело пойти на пару выходных, пока запрос выполнится.....
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039304
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроик Семён,

я попробую
, но в FB не BLOB, а long raw
и в большинстве случаев я получаю ошибку "illegal long raw"
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039314
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНаталья1. там где бд на FB, используется чуть ли не телефонное подключение к интернету. У меня
обычный запрос на выборку 20 записей выполняется около 10 минут.

Во-первых, это значит, что Вы его выполняете очень криво.
Во-вторых, всегда можно поставить локальное зеркало.

WНаталья2. картинки нужны в локальной БД, запросы для поддержки будут выполняться именно к ней.

И, внезапно, эта БД тоже может быть Firebird, а не Oracle.

WНатальяно в FB не BLOB, а long raw

В FB нет типа long raw, не надо бредить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039363
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

1.есть уже куча таблиц в оракр, Вы предлагаете мне перенести их в другую БД? сомнительное решение.


Фото, исторически так сложилось, заливается в другую бд, за 100500 км от меня, и единственное, что меня с ней связывает это линк. Все. Кроме выборки я ничего не могу сделать.

Только недавно я научилась запросы простые писать, c зеркалом сходу будет трудно разобраться.


Что может быть "кривого" в запросе

select pers_id, foto
from бд123@"трататтам.линк.имясервера.домен"
where rownum<20


2. Если я создаю представление, то тип данных поля с фото интерпретируется как raw long. Не как Blob. Я поняла, что косяк самого механизма hdodb, который так интерпретирует этот тип. B режет его при копированные, так как размер raw long в оракле ограничен.

пс.
Вроде бы нормально попросила совета или помощи на форуме, а в ответах либо тролят, либо тупой назовут. ;(
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039370
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНаталья1.есть уже куча таблиц в оракр, Вы предлагаете мне перенести их в другую БД? сомнительное
решение.

Да, это делается в пару кликов.

WНатальяЧто может быть "кривого" в запросе

select pers_id, foto
from бд123@"трататтам.линк.имясервера.домен"
where rownum<20

Всё. Абсолютно всё. От того как он написан до того как он исполняется.

Внезапно, но он выбирает с удалённого сервера ВСЮ таблицу, а не 20 записей.

WНатальяЯ поняла, что косяк самого механизма hdodb, который так интерпретирует этот тип.

Да. И именно поэтому единственным правильным решением будет не использовать его.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039371
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Внезапно, но он выбирает с удалённого сервера ВСЮ таблицу, а не 20 записей.

Разве тут не сработает ограничение по лимиту фетча?
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039372
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Хорошо, а как сделать так, чтобы запрос перестал быть "кривым?" есть такие-то best practices?

2. Я так понимаю, что лучше написать приложение, которое будет брать фото из удаленной бд, а потом копировать его в оракуловскую?
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039382
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроик Семён,

что я не правильно делаю?
обрезка на стороне FB?
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039384
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envРазве тут не сработает ограничение по лимиту фетча?

Может сработает может нет, надо фактический план смотреть. Оно работает на стороне
Оракула, стало быть сколько записей обработает и отдаст перед его срабатыванием удалённый
сервер зависит от погоды на Марсе.

WНаталья1. Хорошо, а как сделать так, чтобы запрос перестал быть "кривым?" есть такие-то best
practices?

Как минимум - спросить у постановщика задач "что это за задача такая, получить именно 20
каких-то фотографий", поскольку в практическом плане этот запрос бессмыслен.
Когда выкристаллизуется задача - использовать Passthrough SQL чтобы иметь точный контроль
над запросом, уходящим на удалённую сторону.

WНаталья2. Я так понимаю, что лучше написать приложение, которое будет брать фото из удаленной бд,
а потом копировать его в оракуловскую?

Именно это вам в этом топике уже сказали три или четыре раза.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039388
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНаталья
что я не правильно делаю?

Синтаксис FB не работает в парсере оракла. Можно DBMS_HS_PASSTHROUGH использовать для применения нативного синтаксиса.
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039391
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WНаталья,

оракля настойчиво советует отказаться от long, предлагает для миграции использовать to_lob

но
You cannot use TO_LOB with a remote table. For example, the following statements will not work ...
INSERT INTO tb1 (lob_col) SELECT TO_LOB(long_col) FROM tb2@dblink;
и видать неспроста

а у вас удаленная и еще и не оракля

ps
самое простое прогой прочитать картинку не через линк, и если надо записать в blob локалки

pss
глянуть в сторону DBMS_SQL.COLUMN_VALUE_LONG


.....
stax
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039575
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

уже пробовала to_lob.

Не работает.

Спасибо, да, придется писать сторонне приложение.
...
Рейтинг: 0 / 0
Проблема при передаче конвертации поля Long в Blob
    #40039576
WНаталья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

да, я так и поняла. что это на в FB.

Спасибо
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема при передаче конвертации поля Long в Blob
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]