在对象 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 并重新创建它。
我在对象 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 并重新创建它。