【发布时间】:2012-10-23 18:07:33
【问题描述】:
可能重复:
How can I define a type in oracle11g that references a collection of that type?
我有一个场景,我必须创建一个用户定义的类型 A,它有一个类型 A 的集合。 我尝试执行以下操作但没有帮助:
create or replace type sku_t;
create or replace type skulink_t as table of sku_t;
create or replace type sku_t as object(skuId varchar(12), display_name varchar(100), bundlnks ref skulink_t );
这会使对象 sku_t 和 skulink_t 处于不完整状态,编译器会抱怨要完成它们。我不知道该怎么做。任何帮助将不胜感激。
【问题讨论】:
-
为什么您认为您需要创建一个包含该类型集合的类型?这似乎不是一个明智的要求,我很难想象有任何语言可以实现这样的事情。如果您可以消除该要求,那么您可以明智地定义一个对象 A 并定义另一个具有 A 集合的对象 B,这似乎是解决此类问题的适当方法。你能解释一下为什么不能有多个对象吗?
-
基本上我想从我拥有的表中创建一个树结构。根据要求,这是定义和描述为的层次结构:catalog-->category-->category-->category-->product-->sku-->bundl
-
抱歉上面的回复不完整,下面是我想写的。
-
基本上我正在尝试从我拥有的表中创建一个树结构,并同时使用 DBMS_XMLGEN 包或任何其他工具将其转换为 XML 格式。根据要求,这是定义层次结构的方式:catalog-->category(s)-->category(s)-->category(s)-->product(s)-->sku(s)-- >sku。目录可以有一个或多个类别,还可以有一个或多个子类别等,类似地,树分支到产品和 sku。此要求无法更改。
-
如果您已经拥有表中的数据并且目标是生成 XML,那么您为什么要首先尝试创建对象类型层次结构?为什么不直接从表中生成 XML?
标签: oracle collections adt user-defined-types self-reference