powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Апдейт поля BLOB
25 сообщений из 54, страница 1 из 3
Апдейт поля BLOB
    #39769679
chavchipav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
столкнулся с проблемой.
похожее обсуждение было тут: https://www.sql.ru/forum/153066/update-blob-in-trigger

но так и не понял решения.

суть вот в чем:
в среде разработки Toad for Oracle, пытаюсь обновить поле с типом BLOB. есть триггер, который потом переливает это поле в другую таблицу.
если выполнить апдейт через statement (update my_table set blob_field = ...), то в триггере длина нового блоба ненулевая (dbms_lob.getlength(:new.blob_field) > 0), но если изменяю тело BLOBa через data grid (двойной клик по полю в строке, затем открывается "Blob editor", затем выбираю любой файл непустой и загружаю, то в том же триггере почему-то dbms_lob.getlength = 0, но из таблицы могу скачать блобик и там есть открываемое непустое содержимое)
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39769686
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chavchipav,

Lob locator
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39769688
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39769712
chavchipav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не очень понял.

в обоих случаях отрабатывает один и тот же код в триггере, но через statement апдейта призодит ненулевая длина блоба, а через Toad data grid в триггер приходит якобы нулевой блоб. такое ощущение, что при апдейте через data grid создается какой-то другой локатор, который непонятно как и когда присваивается полю таблицы
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39769728
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chavchipavтакое ощущение, что при апдейте через data grid создается какой-то другой локатор, который непонятно как и когда присваивается полю таблицыНе надо гнать пурги, когда не понимаешь как работают LOB-ы.
Чтобы понять, придётся вдумчиво прочитать документацию.
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770364
chavchipav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

суть объекта LOB известна и понятна, может Вы не поняли суть вопроса? в чем подвох проблемы?

повторюсь: в триггере на таблице выполняется код, в частности dbms_output.put_line(dbms_lob.getlength( :new.blob_body ));

ситуация 1:
апдейт через SQL

update my_table
set blob_field = (select blob_src from temp_table)
where id = 12345;


ситуация 2:
в data grid среды разработки, в частности TOAD, два раза если кликнуть на поле типа BLOB, то открывается editor, в котором можно выбрать файл из файловой системы ОС и поместить его по факту в область памяти, на которую указывает локатор из выбранного поля строки, запись происходит, могу затем посмотреть (скачать) загруженный файл

в обеих ситуациях вызывается один и тот же код триггера, но в первой ситуации выводится значение, большее 0, например 199374, а во второй ситуации выводится значение 0
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770373
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chavchipavсуть объекта LOB известна и понятна, может Вы не поняли суть вопроса? в чем подвох проблемы?Считающий себя недопонятым гением и талдычащий одно и то же, скажи, что тебе непонятно в следуующей части документации:RTFMif you use OCI functions or DBMS_LOB routines to change the value of a LOB column or the LOB attribute of an object type column, Oracle does not fire the DML trigger .
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770374
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chavchipavсуть объекта LOB известна и понятнаЛамерство уныло.
Пройдись хотя бы по ссылкам предложенного поиска. Твоя же ссылка содержит код, достаточный для анализа.
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770503
chavchipav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, -2-,

спасибо, стало яснее.

но скажу, что на форумах то наверное и пишут для того, чтобы понять проблему и обращаются к знающим людям.

и можно было сразу ответить нормально, без лишнего выпендрёжа!!
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770507
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chavchipavи можно было сразу ответить нормально, без лишнего выпендрёжа!!Т.е. это следует понимать как "Я - д'Артаньян. По ссылкам не хожу. А вы - …" ?
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770508
chavchipav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

"
что тебе непонятно в следуующей части документации:
RTFM
if you use OCI functions or DBMS_LOB routines to change the value of a LOB column or the LOB attribute of an object type column, Oracle does not fire the DML trigger
"

ключевые слова "does not fire the DML trigger" - которые означают, что подобные действия не инициируют событие, на которое происходит запуск триггера.

действительно, если попробовать записать данные через dbms_lob, то триггер даже не будет выполняться.

в моих же описанных выше ситуациях я написал, что триггер выполняется (!) = отрабатывает код триггера, чтобы понять это, я добавил простой output, чтобы понять, что триггер в принципе запускался.
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770511
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chavchipavв моих же описанных выше ситуациях я написал, что триггер выполняется (!) = отрабатывает код триггера, чтобы понять это, я добавил простой output, чтобы понять, что триггер в принципе запускался.О чудо! Триггер срабатывает. Но стало ли тебе легче?

Пора бы уже понять, что содержимое lob-а триггером ловить ненадёжно.
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770512
chavchipav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

это понятно, что ненадежно!

но как объясняется поведение данных в моих двух примерах - я это хочу понять?

я же говорю, что триггер выполняется в обоих моих примерах, а вы кидаете ссылки, в которых описываются ситуации, не активирующие триггер.

ну или давайте киньте еще какую-нибудь ссылку, сделайте тем самым вид, что:
- всё знаете (но не отвечаете нормально при этом), плюс выставив меня незнающим (причем я не отрицаю, что чего-то недопонимаю)
или
- не знаете решения или причины проблемы и не хотите об этом сказать (признаться) ?

ну и разойдемся тогда, чтобы не тратить время...
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770520
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chavchipavпонятноОпять?!
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770521
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicchavchipavв моих же описанных выше ситуациях я написал, что триггер выполняется (!) = отрабатывает код триггера, чтобы понять это, я добавил простой output, чтобы понять, что триггер в принципе запускался.О чудо! Триггер срабатывает. Но стало ли тебе легче?

Пора бы уже понять, что содержимое lob-а триггером ловить ненадёжно.

триггер срабатывает, значит ето не OCI functions or DBMS_LOB

где в доке написано, что если триггер fire (а он fire) то ловить ненадежно?


....
stax
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770522
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxтриггер срабатывает, значит ето не OCI functions or DBMS_LOBЕще один логик.
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770525
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chavchipav- всё знаете (но не отвечаете нормально при этом), плюс выставив меня незнающим (причем я не отрицаю, что чего-то недопонимаю)
- не знаете решения или причины проблемы и не хотите об этом сказать (признаться) ?Третье - ты д'артаньян, не способный пройтись по ссылкам и воспринять информацию. Послнедний намёк: returning.
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770527
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxтриггер срабатывает, значит ето не OCI functions or DBMS_LOBСтанислав, включи мозг. DML триггера ловят DML события.
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770534
chavchipav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, как это понимать??
ElicТретье - ты д'артаньян


что опять??
-2-Опять?!


так вы ссылки кидаете и намёками бросаетесь, а слабо написать нормально?)
или вы сами значит не знаете и делаете какие-то догадки, чтобы не спалиться?
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770554
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicStaxтриггер срабатывает, значит ето не OCI functions or DBMS_LOBСтанислав, включи мозг. DML триггера ловят DML события.

если не срабатывает, то я ето допустим понимаю (OCI or DBMS_LOB)


но триггер то сработал

что словил триггер (какое DML событие) кагда dbms_lob.getlength(:new.blob_field)=0?

імхо, если он fire , то должен отрабатывать как с update и dbms_lob.getlength>0

.....
stax
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770557
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chavchipavили вы сами значит не знаете и делаете какие-то догадки, чтобы не спалиться?
знають!

но предлагают не рыбу, а удочку в пустыне ораклячей доки

....
stax
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770563
chavchipav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
перед тем как писать здесь, я прочитал документацию, но там не нашел описание поведения как в частности описал я.

поэтому они и кидают доки, потому что сами их не прочитали видимо и ссылаются на них, думая, что там есть...
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770578
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chavchipavпоэтому они и кидают доки, потому что сами их не прочитали видимо и ссылаются на них, думая, что там есть...Самовлюблённый ламер, returning в приведённых ссылках искать не стал?
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770581
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxімхо, если он fire , то должен отрабатывать как с update и dbms_lob.getlength>0Ты безнадёжен.
...
Рейтинг: 0 / 0
Апдейт поля BLOB
    #39770586
chavchipav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

самовлюбленный и безнадежный по-моему здесь ты, если можешь только оскорблять и нормально на вопросы не отвечать
...
Рейтинг: 0 / 0
25 сообщений из 54, страница 1 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Апдейт поля BLOB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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