我在Oracle live中创建了一个包含地图成员函数的类型。
select value(r),r.rid
from rectangle r;
当我执行上述操作时,它将显示[不支持的数据类型]作为值(r)列输出。我如何查看其中的真实数据?因为该值在地图成员函数中很重要。
create type rectangle_t as object(
rid varchar(2),
lengths number,
width number
);
ALTER type rectangle_t add map member function area return number cascade;
create or replace type body rectangle_t map member function area return number is
BEGIN
return self.lengths*self.width;
END;
END;
create table rectangle of rectangle_t;
INSERT INTO rectangle VALUES('a',10,5);
INSERT INTO rectangle VALUES('b',20,10);
INSERT INTO rectangle VALUES('c',5,2);
答案 0 :(得分:1)
根据您的评论。
实际上我需要根据区域按降序排序。怎么样 我能做到吗?
你可以使用它。
SELECT
r.*,
r.area() area
FROM
rectangle r
ORDER BY
area DESC;
<强> O / P 强>
RI LENGTHS WIDTH AREA
-- ---------- ---------- ----------
b 20 10 200
a 10 5 50
c 5 2 10
问题在于Livesql。在SQL developer
中,它对我来说非常好。您可以免费下载Oracle并在您的计算机上安装,并在sql developer或sqlplus
中进行尝试。