【发布时间】:2009-11-03 00:31:34
【问题描述】:
我有两个实体,客户和订单,我都为它们创建了类型。 SQL 类型声明是:
CREATE OR REPLACE TYPE "CUSTOMERTYPE" AS OBJECT (
customerId CHAR(6),
name VARCHAR2(50),
address VARCHAR2(255),
telephone CHAR(11)
);
CREATE OR REPLACE TYPE "ORDERTYPE" AS OBJECT (
customer REF CustomerType,
orderId CHAR(10),
orderDate DATE,
totalCost FLOAT
);
这个想法是客户可以下 1..* 订单。 1..1 位客户下订单。
我还创建了 CustomerTable 和 OrderTable 表,如下所示:
CREATE TABLE "CUSTOMERTABLE" OF "CUSTOMERTYPE";
CREATE TABLE "ORDERTABLE" OF "ORDERTYPE";
CustomerTable 中有一个 customerId = '123456' 的条目。当我执行以下操作时:
INSERT INTO OrderTable
SELECT OrderType (REF(c), '1234567890', '02-Nov-2009', 99)
FROM CustomerTable c
WHERE c.customerId = '123456';
Oracle 报告该行已被插入。但是,当我检查数据时出现错误:
ORA-00932:不一致的数据类型:预期 NUMBER 得到了 REF MILKPLUSVELLOCET.CUSTOMERTYPE
任何帮助将不胜感激。
【问题讨论】:
标签: sql oracle oracle10g ora-00932