oracle sql:从两个没有字段重叠的视图中选择字段

oracle sql:从两个没有字段重叠的视图中选择字段,sql,oracle,oracle-sqldeveloper,Sql,Oracle,Oracle Sqldeveloper,在Oracle SQL Developer中工作(3.2.20.09) 我必须从两个源视图创建一个视图。例如,视图A中存在字段1-3,视图B中存在字段4-6。没有重叠。我无法同时选择这两个视图并将其所有字段拉入后续视图,因为合并后的视图中的字段太多(两个源视图的合并远远超过了单个视图中允许的字段总数) 是否可以告诉我的pl/sql包过程:从视图A获取此字段。如果不存在,请转到视图B 或者使用所有的tab列或其他元(?)解决方案是更好的解决方案,看看谁拥有字段1并从那里获取它 我对以上两种选择都没

在Oracle SQL Developer中工作(3.2.20.09)

我必须从两个源视图创建一个视图。例如,视图A中存在字段1-3,视图B中存在字段4-6。没有重叠。我无法同时选择这两个视图并将其所有字段拉入后续视图,因为合并后的视图中的字段太多(两个源视图的合并远远超过了单个视图中允许的字段总数)

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

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

我对以上两种选择都没有任何经验,因此非常感谢您的指导


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

不可能创建超过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;

我最初的问题写得不好。我应该说“例如,字段1-3。事实上,两个源代码视图中的每个都包含远远超过3个字段,并且当合并时,超过了Oracle的限制。嗯?Oracle表可以有1000列,但不确定是否有视图。您的视图是否接近于此?刚刚尝试过,一个视图也可以有1000列。之后,出现了一个错误”ORA-01792:表或视图中的最大列数为1000“我总共有1400多列。哎哟!视图A和B的列的数据类型如何?是否可以减少视图A和B中的列数?我想不出为什么一个人会有那么多专栏。成百上千?绝对不可能。那绝对不是我的电话。对不起,只是问问而已。那我就没有办法了。但是仅仅出于专业兴趣,你怎么会有这么多的列,这些视图中存储了什么样的数据?没有冒犯你的意思!谢谢你的努力。