【发布时间】:2018-09-14 17:34:31
【问题描述】:
任务是在某个唯一列上创建具有主键的物化视图,以便可以将物化视图复制到另一个数据库。问题是没有唯一的列,因为我必须连接大量的表,所以我不能使用连接表中的 ID,因为它们在我的物化视图中不再是唯一的。
首先我要创建一个视图,因为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;
【问题讨论】:
-
为什么不组合唯一列来创建复合主键?
-
为什么需要视图?一个垫子视图可以有子查询。
标签: oracle