0

有谁知道我如何从表中的列中选择一个 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;

谢谢

4

1 回答 1

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
于 2013-01-16T10:21:43.873 回答