有谁知道我如何从表格中的列中选择blob(本例中的图像)?我的查询引发了这个错误:
ORA-00932: inconsistent datatypes: expected - got BLOB
00932. 00000 - "inconsistent datatypes: expected %s got %s"
SELECT homes.title, homes.description, homes.living_room_count, homes.bedroom_count, homes.bathroom_count, homes.price, homes.sqft,
listagg(features.feature_name, ',') WITHIN GROUP (ORDER BY features.feature_name) features, home_type.type_name, home_photo.photo, home_photo.description
FROM homes
INNER JOIN home_feature
ON homes.home_id = home_feature.home_id
INNER JOIN home_type
ON home_type.type_code = homes.type_code
INNER JOIN home_photo
ON homes.home_id = home_photo.home_id
INNER JOIN features
ON home_feature.feature_id = features.feature_id
INNER JOIN home_photo
ON home_photo.home_id = homes.home_id
GROUP BY homes.title, homes.description, homes.living_room_count, homes.bedroom_count, homes.bathroom_count, homes.price, homes.sqft, home_type.type_name, home_photo.photo, home_photo.description;
谢谢
答案 0 :(得分:3)
您收到此错误是因为您尝试将GROUP BY与BLOB列一起使用。这在Oracle中是不可能的。
您应该能够通过在子查询中进行分组并将带有home_photo的JOIN移动到外部查询来解决此问题:
select v1.*,
home_photo.photo,
home_photo.description
from (SELECT homes.homes_id,
homes.title,
homes.description,
homes.living_room_count,
homes.bedroom_count,
homes.bathroom_count,
homes.price,
homes.sqft,
listagg(features.feature_name,
',') WITHIN GROUP(ORDER BY features.feature_name) features,
home_type.type_name
FROM homes
INNER JOIN home_feature
ON homes.home_id = home_feature.home_id
INNER JOIN home_type
ON home_type.type_code = homes.type_code
INNER JOIN features
ON home_feature.feature_id = features.feature_id
GROUP BY homes.homes_id,
homes.title,
homes.description,
homes.living_room_count,
homes.bedroom_count,
homes.bathroom_count,
homes.price,
homes.sqft,
home_type.type_name) v1
INNER JOIN home_photo
ON home_photo.home_id = v1.home_id