Oracle或数据库:为什么ref()函数获取对象而不是OID?

Oracle或数据库:为什么ref()函数获取对象而不是OID?,oracle,oracle-sqldeveloper,ref,object-relational-model,Oracle,Oracle Sqldeveloper,Ref,Object Relational Model,我正在使用Oracle(11g)和SQL开发工具(4.1.3版)。我有一个对象关系数据库 我这样做: CREATE TYPE emp_person_typ AS OBJECT ( name VARCHAR2(30), manager REF emp_person_typ ); / CREATE TABLE emp_person_obj_table OF emp_person_typ; INSERT INTO emp_person_obj_table SELECT

我正在使用Oracle(11g)和SQL开发工具(4.1.3版)。我有一个对象关系数据库

我这样做:

CREATE TYPE emp_person_typ AS OBJECT (
    name VARCHAR2(30), 
    manager REF emp_person_typ ); 
/
CREATE TABLE emp_person_obj_table OF emp_person_typ; 
INSERT INTO emp_person_obj_table 
    SELECT emp_person_typ ('Bob Jones', REF(e)) 
    FROM emp_person_obj_table e 
   WHERE e.name = 'John Smith';

select * from emp_person_obj_table e;
我得到:

NAME          MANAGER                                       
---------- --------------------------------------------------
John Smith                                                  
Bob Jones     EMP_PERSON_TYP('John Smith', NULL)
但是,在
manager
列中,我应该获得
OID
而不是对象
(EMP\u PERSON\u TYP())

我想这可能是一个配置问题,也许我应该以一种特定的方式配置SQLDeveloper,但我不知道


提前感谢。

不确定是否可配置。在“网格视图”中显示结构有一个“高级”首选项,但如果它处于禁用状态,则不会显示OID,也不会影响工作表。版本4.2.0确实在工作表中显示OID,所以升级是一个选项吗?它起作用了!!使用4.2.0版本。谢谢!!!另外,通常假设您使用的是SQL*Plus,这是否真的很重要?无论如何,您通常都会取消引用,以获取经理的姓名(如后面的示例所示)。是的,绝对重要。来自oracle文档:“REF将与对象表或对象视图的一行关联的相关变量(表别名)作为其参数。将为绑定到该变量或行的对象实例返回REF值。”我研究文档,学习它,因此我希望找到这种行为,无论我使用哪种特定工具。返回一个REF;客户机正在以不同的方式解释/显示它。如果您想查看OID,这很好,它对我来说似乎不是特别有用,但这不是我的场景*8-)不确定这是可配置的。在“网格视图”中显示结构有一个“高级”首选项,但如果它处于禁用状态,则不会显示OID,也不会影响工作表。版本4.2.0确实在工作表中显示OID,所以升级是一个选项吗?它起作用了!!使用4.2.0版本。谢谢!!!另外,通常假设您使用的是SQL*Plus,这是否真的很重要?无论如何,您通常都会取消引用,以获取经理的姓名(如后面的示例所示)。是的,绝对重要。来自oracle文档:“REF将与对象表或对象视图的一行关联的相关变量(表别名)作为其参数。将为绑定到该变量或行的对象实例返回REF值。”我研究文档,学习它,因此我希望找到这种行为,无论我使用哪种特定工具。返回一个REF;客户机正在以不同的方式解释/显示它。如果你想看OID,那很好,它对我来说似乎不是特别有用,但这不是我的场景*8-)