或Oracle Express / SQL Developer中的数据库/类型

时间:2016-05-08 10:50:09

标签: sql oracle oracle-sqldeveloper

我尝试用对象关系数据库做一些事情。我有Oracle Express和SQL Developer。一切正常。

我可以创建自己的自定义类型并插入一些行。问题是它无法正确显示。我认为通常是因为它们应该在列中显示对象/类型...

是否有解决方案来显示列中的对象?

这是我的代码。 附:我来自德国。 ANSCHRIFT_T是一个地址类型,其名称为发辫(Strasse)和门牌号(Hausnr)。

CREATE OR REPLACE TYPE ANSCHRIFT_T AS OBJECT (STRASSE CHAR(12), HAUSNR CHAR(3));

CREATE TABLE VERTRETER(V_NR NUMBER(4) PRIMARY KEY, ANSCHRIFT ANSCHRIFT_T);

INSERT INTO VERTRETER VALUES (1, ANSCHRIFT_T('TESTWEG','14'));
INSERT INTO VERTRETER VALUES (2, ANSCHRIFT_T('BLA BLA WEG', '25'));

SELECT V_NR, ANSCHRIFT FROM VERTRETER;

但输出就是这样:

enter image description here

2 个答案:

答案 0 :(得分:1)

双击该值。您会看到您的数据。

double click in the bracketed text

或者,您可以告诉SQL Developer默认显示这些值。

偏好设置>高级显示结构

Turn this on

然后再次运行您的查询。

[Voila[3]

答案 1 :(得分:0)

您需要为表名添加别名,然后可以使用table_alias.object_column.object_attribute从对象列中选择值。像这样:

<强>查询

SELECT V_NR,
       v.ANSCHRIFT.STRASSE,
       v.ANSCHRIFT.HAUSNR
FROM   VERTRETER v;

<强>输出

      V_NR ANSCHRIFT.STRASSE ANSCHRIFT.HAUSNR
---------- ----------------- ----------------
         1 TESTWEG           14               
         2 BLA BLA WEG       25