Oracle SET DESCRIBE DEPTH已过时(替换)

时间:2016-06-03 20:39:52

标签: database oracle

我在Oracle文档中找不到对以下命令的新版本的任何引用:

SET DESCRIBE DEPTH 3 line 89: "SET DESCRIBE DEPTH 3" is Obsolete.

如何在较新版本的Oracle数据库中实现?

它应该模仿对象类型的行为,例如

CREATE OR REPLACE TYPE ADDRESSES AS OBJECT (
        street VARCHAR2 (25),
        house_no NUMBER(2)
);

CREATE OR REPLACE TYPE PEOPLE AS OBJECT (
    name VARCHAR2 (15),
    address ADDRESSES,
    MAP MEMBER FUNCTION Equals RETURN VARCHAR2,
    MEMBER FUNCTION PeopleToString RETURN VARCHAR2,
    PRAGMA RESTRICT_REFERENCES (PeopleToString, RNDS, WNDS, RNPS, WNPS)
)
NOT FINAL;

CREATE TABLE Locations (
    pseudo VARCHAR2(15) CONSTRAINT pk_xyz_table PRIMARY KEY
    CONSTRAINT fk_loc_xyz REFERENCES XYZ(pseudo),
    person PEOPLE
);

SET DESC DEPTH 3
 DESC Locations

 PSEUDO NOT NULL VARCHAR2(15)
 PEOPLE
 PEOPLE IS NOT FINAL
     NAME VARCHAR2(15)
     ADDRESS ADRESSES
         STREET VARCHAR2(25)
         HOUSE_NO NUMBER`

1 个答案:

答案 0 :(得分:2)

根据{{​​3}}和我的测试,

SET DESC DEPTH n在SQL * Plus中并没有过时。

问题似乎是Oracle SQL Developer对SQL * Plus的模仿不佳。这些错误是集成开发环境尝试克隆SQL * Plus的危险原因。

SQL * Plus不是一个很棒的工具。它的主要优点是它在许多平台上的兼容性。有很多方法可以“运行一个脚本”,很高兴有一个你知道的方法对每个人来说都是一样的。

不接受模仿 - 如果你需要SQL * Plus,请使用真实的东西。