У меня есть два объекта, Клиент и Заказ, оба из которых я создал типы для. Объявления типа SQL:Как я могу использовать REF для ссылки на объекты строк?
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: несовместимым типы данных: ожидается ЧИСЛО получил REF MILKPLUSVELLOCET.CUSTOMERTYPE
Любая помощь будет принята с благодарностью.