Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как перенести содержимое BLOB поля из одной записи в другую / 21 сообщений из 21, страница 1 из 1
11.05.2017, 10:35
    #39451161
SQL-Talker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
Привет!

Есть таблица с BLOB полем, в котором хранятся бинарные данные
Мне нужно:
1. прочитать содержимое BLOB-поля выбранной записи
2. показать его в виде строки/строк пользователю (то есть показать как это делает скажем PL/SQL Developer в форме просмотра BLOB-полей на странице "Hex" - см. ниже)
3. при подтверждении пользователем, вставить эти данные в другую запись
...
Рейтинг: 0 / 0
11.05.2017, 10:39
    #39451165
stax..
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
SQL-Talker,

гляньте dbms_lob

.....
stax
...
Рейтинг: 0 / 0
11.05.2017, 10:41
    #39451166
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
SQL-Talker,

1. select
2. установить пользователю pl/sql developer
3. insert/update

Если требуется более подробный ответ, то сформулируй более адекватную задачу. Какой стек используется для разработки пользовательского приложения? Какие библиотеки доступа к данным? И т.п.
...
Рейтинг: 0 / 0
11.05.2017, 10:41
    #39451167
SQL-Talker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
Поторопился сохранить..

Вот так читаю данные:
Код: plsql
1.
UTL_RAW.CAST_TO_RAW( UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(t.my_blob,32000)))


Вот так пробую сохранить:
Код: plsql
1.
2.
3.
update my_table t
set t.my_blob = RAWTOHEX(UTL_RAW.CAST_TO_RAW(v_varchar2))
where t.id = 123


При этом в v_varchar2 содержится строка типа '000000FF ...[вырезано] 5860' - полученная при чтении в первом шаге.

Результат совершенно не тот который мне нужен - эти данные вставляются просто как строка, а не бинарные данные
...
Рейтинг: 0 / 0
11.05.2017, 10:44
    #39451169
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
SQL-Talker,

Может быть потому что rawtohex и возвращает строковое представление hex-кодов?
...
Рейтинг: 0 / 0
11.05.2017, 10:45
    #39451172
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
SQL-Talker,

hextoraw , не?
...
Рейтинг: 0 / 0
11.05.2017, 10:48
    #39451173
SQL-Talker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
env,

Пробовал и так - результат один и тот же ((
...
Рейтинг: 0 / 0
11.05.2017, 10:48
    #39451174
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
SQL-Talker,
иногда полезно думать головой. если пользователь данные не меняет, то не обязательно с клиента их передавать опять на сервер. можно на сервере сделать insert into select. и все эти преобразования не нужны.
...
Рейтинг: 0 / 0
11.05.2017, 10:50
    #39451175
SQL-Talker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
env,

Блин, все верно, вот так сработало:

Код: plsql
1.
2.
3.
update my_table t
set t.my_blob = RAWTOHEX(v_varchar2)
where t.id = 123



Спасибо :)
...
Рейтинг: 0 / 0
11.05.2017, 10:53
    #39451177
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
Vint,

Больше энтропии хорошей и разной!
...
Рейтинг: 0 / 0
11.05.2017, 10:56
    #39451182
SQL-Talker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
Vint,

Т.е. открыть транзакцию, вставить запись, показать картинку пользователю и при согласии закоммитить.
Все бы хорошо, а если пользователь открыл форму и не успев нажать ни да ни нет, его прохватило гнилыми пирожками и он на пару часов засел на очке. А транзакция висит.. А строка заблокирована.. Айс? Ни разу не айс.
...
Рейтинг: 0 / 0
11.05.2017, 10:58
    #39451185
SQL-Talker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
Пардон, не ВСТАВИТЬ запись, а ИЗМЕНИТЬ запись
...
Рейтинг: 0 / 0
11.05.2017, 11:00
    #39451187
SQL-Talker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
Vint,

Хотя, нет. Вы правы. Не нужны эти подпрыги. :))
...
Рейтинг: 0 / 0
11.05.2017, 11:43
    #39451244
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
SQL-TalkerХотя, нет. Вы правы. Не нужны эти подпрыги. :))

Не нужны если есть гарантия, что между select и update/insert поле исходной записи не
изменится.

PS: Аффтар, попробуй свою фигню на блобе размером в пару гигабайт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.05.2017, 12:35
    #39451295
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
Dimitry Sibiryakov,
сначала нехило бы представить пользователя который сможет отсмотреть такой блоб и сказать, типа, все нормально. фильм ништяк. можно записывать.
...
Рейтинг: 0 / 0
11.05.2017, 12:40
    #39451300
stax..
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
VintDimitry Sibiryakov,
сначала нехило бы представить пользователя который сможет отсмотреть такой блоб и сказать, типа, все нормально. фильм ништяк. можно записывать.
запросто
напр карточка доступа ("ключ") на бумаге с подписями/печатьями и ее електронная версия в БД

.....
stax
...
Рейтинг: 0 / 0
11.05.2017, 12:54
    #39451314
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
stax..,
"2. показать его в виде строки/строк пользователю (то есть показать как это делает скажем PL/SQL Developer в форме просмотра BLOB-полей на странице "Hex" - см. ниже)"
и я уже представил карточка.jpg в разрешение 256k чтобы размер до пары гигов дотягивал)))
...
Рейтинг: 0 / 0
11.05.2017, 12:57
    #39451315
stax..
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
Vint,

ааааааааааа, понял, Вы про ГИГЫ, а я о хексах

......
stax
...
Рейтинг: 0 / 0
11.05.2017, 13:56
    #39451360
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
Dimitry SibiryakovSQL-TalkerХотя, нет. Вы правы. Не нужны эти подпрыги. :))

Не нужны если есть гарантия, что между select и update/insert поле исходной записи не
изменится.
А если изменится после, то что меняет прокачка значения через клиента?
...
Рейтинг: 0 / 0
11.05.2017, 14:03
    #39451365
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
-2-,
как что? пользователь отсмотрит все в хекс и то что увидит сохранит. а если там чтото внутрях измениться без показа пользователю, то сохраниться может совсем другая информация. вдруг кто-то до этого чай пил и через пол дня сохранил.
правда решается это все не так, ну да это имхо)
...
Рейтинг: 0 / 0
11.05.2017, 14:33
    #39451395
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перенести содержимое BLOB поля из одной записи в другую
Vintкак что?это я недосмотрел "сценарий" и домыслил репликацию, то есть они и дальше должны совпадать.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как перенести содержимое BLOB поля из одной записи в другую / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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