0

在 Oracle SQL Developer (3.2.20.09) 中工作。

我必须从两个源视图创建一个视图。例如,字段 1-3 存在于视图 A 中,字段 4-6 存在于视图 B 中。重叠为零。我不能同时选择两个视图并将它们的所有字段拉到后续视图中,因为它们组合起来有太多字段(两个源视图的组合远远超过了单个视图中允许的总字段)。

是否可以告诉我的 pl/sql 包程序:从视图 A 中获取此字段。如果它不存在,请转到视图 B?

还是使用 all_tab_columns 或其他一些元(?)解决方案的更好解决方案,看看谁拥有字段 1 并从那里获取它?

我对上述两个选项中的任何一个都没有任何经验,因此希望得到很多指导。

还是有更好的第三种选择?

4

1 回答 1

0

无法创建超过 1000 列的视图。如果视图 A 和 B 的总列数较少,您可以在工作表中使用 SQL 简单地创建第三个视图:

CREATE OR REPLACE VIEW view_3 (f1, f2, f3, f4, f5, f6) 
AS
SELECT a1,   a2,   a3,   NULL, NULL, NULL FROM view_a UNION ALL
SELECT null, null, null, b4,   b5,   b6   FROM view_b;
于 2013-06-27T15:10:28.620 回答