我有以下代码
create table Department2 (
2 deptID number (15) primary key,
3 deptName char (45),
4 deptExt department1,
5 DivisionID references division1);
insert into department2 values (311, 'IT', (69193929489, 27222844821, 17897532567), 211);
我收到以下错误
第1行出现错误:ORA-00907:缺少右括号
如何解决问题?
答案 0 :(得分:3)
以下是基于两个假设的解决方案:
department1
是一种SQL嵌套表类型division1
是带有主键的表因此我们可以像这样创建表:
create table Department2 (
deptID number (15) primary key,
deptName char (45),
deptExt department1,
DivisionID references division1)
NESTED TABLE deptExt STORE AS deptExt_tab
;
请注意,没有必要进一步定义DivisionID
:它从引用表的主键列继承其数据类型。 NESTED TABLE子句是创建嵌套表列所必需的,它在问题中的缺位令人担忧。
已经像这样创建了表,发布的插入语句确实确实对ORA-00907: missing right parenthesis
进行了卷曲。这是由于部门ID的集合:我们正在实例化类型,这意味着我们需要在VALUES子句中引用该集合:
insert into department2
values (311, 'IT', department1(69193929489, 27222844821, 17897532567), 211);