在对象 table 中插入对象时出现 ORA-00909 错误

ORA-00909 error when Insert object in object table

我在对象 table 中插入 superType 对象时遇到错误 ORA-00909。这些是对象的定义:

CREATE OR REPLACE TYPE address AS OBJECT (
    street VARCHAR(20),
    country VARCHAR(20),
    province VARCHAR(20),
    city VARCHAR2(20),
    zipcode VARCHAR(10)
) FINAL;

CREATE OR REPLACE TYPE company AS OBJECT (
    CIF VARCHAR2(9),
    code VARCHAR2(10),
    name VARCHAR2(20),
    signUpDate DATE,
    email VARCHAR2(20),
    adminAddress address
) NOT FINAL;

CREATE OR REPLACE TYPE inCourseCompany UNDER company (
    postalAddress address,
    numEmployees NUMBER
) FINAL;

和对象table:

CREATE TABLE companies_objtab OF company (PRIMARY KEY CIF) OBJECT IDENTIFIER IS PRIMARY KEY;

我尝试使用以下语句插入一个对象:

INSERT INTO companies_objtab VALUES (
  company('J12345678','000001','Test Company',TO_DATE(sysdate, 'dd/mm/yyyy hh24:mi:ss'),'',address('','','','',''))
  );

我收到错误错误

SQL: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"

但是,当我在 CourseCompany 中插入子类型的对象时,它被正确插入:

INSERT INTO companies_objtab VALUES (
  inCourseCompany('G11111111','','',TO_DATE(sysdate, 'dd/mm/yyyy hh24:mi:ss'),'',address('','','','',''), address('','','','',''), 100)
  );

关于错误原因的任何提示?

我正在使用 Oracle SQL Developer 4.0.2.15.21 和 Oracle Database Express Edition 11g 第 2 版。

提前致谢。

我试过你发布的所有陈述(复制粘贴)。在 12c 和 11gR2 上。一切正常,两个插件。我唯一注意到的是您的 create table 有点不正确。这是正确的(但这并不能解释您得到的错误)。 HTH韩元

CREATE TABLE companies_objtab OF company (CIF PRIMARY KEY) OBJECT IDENTIFIER IS PRIMARY KEY;

也许可以尝试删除 table 并重新创建它。