对象关系模型中的对象标识符(OID)和关系模型中的记录 ID(RID)有什么区别?
问问题
1382 次
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 回答