Database 缺少右括号第1行
我有以下代码Database 缺少右括号第1行,database,oracle,user-defined-types,Database,Oracle,User Defined Types,我有以下代码 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
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:缺少右括号
如何解决问题?以下是一个基于两个假设的解决方案: 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:它从引用表的主键列继承其数据类型。创建嵌套表列需要嵌套表子句,问题中没有嵌套表子句会带来麻烦
创建了这样的表之后,发布的insert语句确实抛出了ORA-00907:缺少右括号。这是由于部门ID的集合:我们正在实例化一个类型,这意味着我们需要在VALUES子句中引用集合:
insert into department2
values (311, 'IT', department1(69193929489, 27222844821, 17897532567), 211);
我已经发布了一个基于两个假设的解决方案: 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:它从引用表的主键列继承其数据类型。创建嵌套表列需要嵌套表子句,问题中没有嵌套表子句会带来麻烦
创建了这样的表之后,发布的insert语句确实抛出了ORA-00907:缺少右括号。这是由于部门ID的集合:我们正在实例化一个类型,这意味着我们需要在VALUES子句中引用集合:
insert into department2
values (311, 'IT', department1(69193929489, 27222844821, 17897532567), 211);
我已经发布了检查以下内容,它可能会提供一个解决方案:谢谢,我现在更正了它working@AlexPoole-不必为作为外键的列包含数据类型。看看我的答案。@APC-这是我的基本要求!?今天的课,谢谢。我假设在这种情况下,总是去PK;如果你参考了不同的英国,那么你必须指定。但我会读一些书。我还没有意识到错误来自插入,d'oh…@AlexPoole-我更喜欢详细声明而不是最小声明,但我喜欢严格继承数据类型。检查以下内容,它可能会提供一个解决方案:谢谢,我现在更正了它working@AlexPoole-不必为作为外键的列包含数据类型。看看我的答案。@APC-这是我的基本要求!?今天的课,谢谢。我假设在这种情况下,总是去PK;如果你参考了不同的英国,那么你必须指定。但我会读一些书。我还没有意识到错误来自插入,d'oh…@AlexPoole-我更喜欢详细声明而不是最小声明,但我喜欢继承数据类型的严格性。