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