как объединить две таблицы в оракуле в столбце blob
при выполнении этого запроса появляется сообщение об ошибке «Команда SQL неправильно завершена»
select name,photo
from tbl1 join tbl2 on tbl1.photo = tbl2.photo
как объединить две таблицы в оракуле в столбце blob
при выполнении этого запроса появляется сообщение об ошибке «Команда SQL неправильно завершена»
select name,photo
from tbl1 join tbl2 on tbl1.photo = tbl2.photo
Во-первых, очень-очень странно иметь дизайн, в котором вы храните одно и то же blob
в двух разных таблицах, и очень странно, что вы хотите соединить изображение. Это не похоже на разумный дизайн.
Вы пометили это для Oracle 8i. Это древняя версия Oracle, которая не поддерживала синтаксис соединения SQL 99. Вместо этого вам нужно будет выполнить соединение в предложении where
. Вы не можете напрямую проверить равенство между двумя значениями blob
. Но вы можете использовать dbms_lob.compare
select name,photo
from tbl1,
tbl2
where dbms_lob.compare(tbl1.photo, tbl2.photo) = 0
Это будет довольно отвратительно с точки зрения производительности. Вам придется сравнивать каждую photo
из tbl1
с каждой photo
из tbl2
, а сравнение двух лепестков не особенно быстрое. Если вы действительно намерены сравнивать изображения, вам, вероятно, лучше вычислить хэш, сохранить его в отдельном индексированном столбце, а затем сравнить хэши, а не сравнивать изображения напрямую.
Код:
SELECT
name, photo
FROM
tbl1 T1
INNER JOIN
tbl2 T2
ON
T1.photo = T2.photo
Если все работает неправильно, вам придется внести несколько изменений в структуру TABLE:
1. ...Добавить новый TABLE
с именем IMAGES со столбцами (image_id, image_blob) < br>2. ...И тогда вам придется изменить: tbl1's blob
и tbl2's blob
на image_id
3. ...Затем выполните JOIN
на основа COLUMN
с именем image_id
ПРИМЕЧАНИЕ. Вы не можете выполнять GROUP BY, JOIN(any JOIN), CONCAT
операций с BLOB
типом данных.
ПРЕДЛОЖЕНИЕ: сохраните пути к изображениям в БАЗЕ ДАННЫХ и сохраните ИЗОБРАЖЕНИЯ где-нибудь в каталоге этого СЕРВЕРА (поскольку сохранение изображений в BLOB в БАЗЕ ДАННЫХ не рекомендуется..... Чтобы убедиться, что я сказал ПОСЕТИТЕ ЗДЕСЬ)
JOIN
- person a_horse_with_no_name; 13.03.2016
JOIN
. Но это ужасный дизайн в первую очередь - person a_horse_with_no_name   schedule 13.03.2016