CustomerとOrderの2つのエンティティがあり、どちらもタイプを作成しました。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がREFMILKPLUSVELLOCET.CUSTOMERTYPEを取得しました
どんな助けでも大歓迎です。