Я использую Oracle DB, и у меня есть этот тип с подтипами:
CREATE TYPE t_foo AS OBJECT
(id INTEGER)
NOT FINAL;
CREATE TYPE t_foo1 UNDER t_foo() NOT FINAL;
У меня есть таблица типа t_foo
, где я также могу хранить подтипы t_foo
CREATE TABLE foo OF t_foo;
INSERT INTO foo VALUES
(t_foo1(1));
Теперь у меня есть таблица со столбцом ссылки на тип t_foo1
CREATE TABLE bar(
myfoo1 REF t_foo1 SCOPE IS foo
);
Как я могу вставить ссылку t_foo1
из таблицы foo
?
Я пробовал это:
INSERT INTO bar VALUES
(select ref(f) from foo f where f.id = 1)
Но это дает мне ошибку типа (ожидание ref t_foo1, но найдено t_foo)
Я также пытался использовать функцию TREAT, но она не работает (ORA-00904: неверный идентификатор).
INSERT INTO bar VALUES
(select ref(t_foo1) from foo f where t_foo1.id = 1 and TREAT(t_foo1 AS t_foo));
Как я могу заставить эту вставку работать?