作为用户定义类型的列和使用用户定义类型的 Ref 之间的区别

时间:2021-01-10 20:28:46

标签: sql oracle plsql

我有以下代码片段:

CREATE TYPE ModeleRoue (nom VARCHAR2(10) );

CREATE TYPE Roue (numero NUMBER(20), modele REF ModeleRoue, marque
VARCHAR2(50));

CREATE TYPE Roue (numero NUMBER(20), modele ModeleRoue, marque
VARCHAR2(50));

当涉及到modele列时,比较这两个语句有什么区别?

1 个答案:

答案 0 :(得分:1)

CREATE TYPE Roue ( modele ModeleRoue );

ModeleRoue 对象中包含 Roue 对象,如果存储在表中,则两个模型将存储在同一行中。

CREATE TYPE Roue ( modele REF ModeleRoue );

ModeleRoue 对象中包含对 Roue 对象的引用(指针),但实际引用的 ModeleRoue 对象将存储在另一行中(并且,因为它是不同的类型, 将在不同的表中)。

或者,来自the documentation

<块引用>

REF 将与对象表或对象视图的行相关联的相关变量(表别名)作为其参数。为绑定到变量或行的对象实例返回 REF 值。

相关问题