Oracle ORA-00909在对象表中插入对象时出错

Oracle ORA-00909在对象表中插入对象时出错,oracle,insert,oracle11gr2,Oracle,Insert,Oracle11gr2,在对象表中插入超类型的对象时,我遇到错误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 O

在对象表中插入超类型的对象时,我遇到错误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;
和对象表:

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:参数数无效 90900000-“参数数无效”

但是,当我在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 Release 2


提前谢谢你。

我在你发布你所有的声明时都做了正确的尝试(复制粘贴)。在12c和11gR2上。每件事都起作用了,都是插页。我唯一注意到的是,您的create表有点不正确。这是正确的一个(但这不能解释您得到的错误)。HTH-KR


也许可以试着放下表格,重新创建一次。

谢谢您的反馈。我解决了这个问题。愚蠢的一个。在我最初的脚本中,我使用“lead”而不是“company”作为类型的名称,但当我发布这期文章时,我改变了它。原来LEAD是一个SQL函数的名称,SQL解释器解释说我调用的是该函数而不是构造函数。糟糕的是,我没有注意到蓝色粗体字母告诉我铅是“其他东西”。
CREATE TABLE companies_objtab OF company (CIF PRIMARY KEY) OBJECT IDENTIFIER IS PRIMARY KEY;