如何在select语句中获取引用?

时间:2018-10-21 21:23:00

标签: database oracle

我正在使用Oracle 12c类型。

假设我有一个名为TY的类型。

我想执行以下查询:

select ref(TY(p1,p2,...,pn)) from dual;

它在没有ref(...)的情况下有效。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

Oracle documentation says this about REFs

  

REF包含以下三个逻辑组件:

     
      引用对象的
  • OID。系统生成的OID为16个字节长。基于主键的OID的大小取决于密钥的大小。   主键列。

  •   包含所引用对象的表或视图的
  • OID,其长度为16个字节。

  •   
  • 行提示,长度为10个字节。

  •   

这些都是位置属性。它们在对象关系表中唯一标识对象的实例。您的查询失败,因为您尝试引用瞬态对象。

REF的价值在于它们使我们能够引用现有对象,因此我们可以导航对象层次结构,强制执行约束等。您尝试执行的操作不适合这种用法。