查看oracle中不支持的数据类型的值

时间:2017-10-31 02:25:22

标签: oracle

我在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);

enter image description here

1 个答案:

答案 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中进行尝试。