Задача состоит в том, чтобы создать материализованное представление с первичным ключом в некотором уникальном столбце, чтобы материализованное представление могло быть реплицировано в другую БД.Проблема в том, что нет уникальных столбцов, потому что мне пришлось объединить очень большое количество таблиц, поэтому я не могу использовать идентификаторы из соединенных таблиц, поскольку они больше не являются уникальными в моем материализованном представлении.
Прежде всего я должен создать представление, потому что в select есть подзапросы:
CREATE VIEW V_CONTRACTS
AS
SELECT
ID.NEXTVAL,
C.*
FROM (SELECT <lots of columns>
FROM CONTRACT
<lots of joins>
WHERE <some filters>) C
;
Но выдается ошибка:
ORA-02287: sequence number not allowed here
Затем я создам материализованное представление как:
CREATE MATERIALIZED VIEW CONTRACTS
AS
SELECT * FROM V_CONTRACTS;