0

对象关系模型中的对象标识符(OID)和关系模型中的记录 ID(RID)有什么区别?

4

1 回答 1

1

两者的目的相同,但范围不同。记录在 pl/sql 块中声明,但对象在数据库中声明。这意味着记录是 pl/sql 块类型,而对象是模式对象。

declare
type c is record(a number, b number);
begin
---
---
---
end;

create type subtype1 is object(a number, b number);

当 Oracle 为行对象构造 REF 时,构造的 REF 由对象标识符、对象表的一些元数据以及可选的ROWID组成。

REF 类型列中 REF 的大小取决于与该列关联的存储属性。例如,如果该列被声明为 REF WITH ROWID,Oracle 将 ROWID 存储在 REF 列中。对于受约束的 REF 列中的对象引用,将忽略ROWID提示。

如果列被声明为带有SCOPE子句的 REF,则通过省略对象表元数据和ROWID使列变小。范围内的 REF 长 16 个字节。

于 2013-09-25T05:39:38.203 回答