0

我正在使用 OODB 并尝试使用两个表创建一个嵌套表。我在这里发布代码

create type BranchType as object(
address AddrType,
phone1 integer,
phone2 integer );

create table BranchTableType of BranchType;

create type PublisherType as object(
name varchar2(50),    
addr AddrType,
branches BranchType);

该代码打算按分支类型创建一个表分支,然后创建一个 Publisher Type 类型,然后尝试创建一个嵌套表。

create table Publishers of PublisherType NESTED TABLE
branches STORE as branchTable

但是上面的代码给出了错误,指出指定的类型不是嵌套表类型。请帮帮我。

4

1 回答 1

0

您似乎在对象、对象表和对象表之间混淆了类型。addrtype由于问题中未对此进行描述,因此构建了一个虚构的内容:

create type addrtype as object(
city varchar2(20)
)
/

create type BranchType as object(
address AddrType,
phone1 integer,
phone2 integer )
/

create type BranchTableType as table of BranchType
/

create type PublisherType as object(
name varchar2(50),    
addr AddrType,
branches BranchTableType)
/

create table Publishers of PublisherType NESTED TABLE
branches STORE as branchTableTypeStore
/

SQL 小提琴

主要区别在于:

create type BranchTableType as table of BranchType

作为表类型而不是表,而不是:

create table BranchTableType of BranchType;

和:

create type PublisherType as object(
...
branches BranchTableType)

使用嵌套表类型,而不是:

create type PublisherType as object(
...
branches BranchType);

和:

branches STORE as branchTableTypeStore

作为存储名称而不是类型,而不是:

branches STORE as branchTable

但我不完全确定你会做什么以及这是否正是你想要的。希望这无论如何都会为您指明正确的方向...

于 2013-05-28T08:41:07.960 回答