sqlplus - 错误: ORA-01789: query block has incorrect number of result columns

标签 sqlplus

我有两种关系观点。

第一种观点:

CREATE VIEW VIEW1
AS
SELECT T#,
MAX(DECODE(LEG#,1,DEPARTURE)) ORIGIN,
MAX(DECODE(LEG#,1,DESTINATION)) DESTINATION1
FROM TRIPLEG
WHERE T# IN
(SELECT T# FROM TRIPLEG WHERE LEG# < 3
AND T# IN
(SELECT T# FROM TRIPLEG GROUP BY T#
HAVING COUNT(T#) < 3)
GROUP BY T#)
GROUP BY T#
ORDER BY T#;

第二种观点:
CREATE VIEW VIEW2
AS
SELECT T#,
MAX(DECODE(LEG#,2,DESTINATION)) DESTINATION1
FROM TRIPLEG
WHERE T# IN
(SELECT T# FROM TRIPLEG WHERE LEG# < 3
AND T# IN
(SELECT T# FROM TRIPLEG GROUP BY T#
HAVING COUNT(T#) < 3)
GROUP BY T#)
GROUP BY T#
ORDER BY T#;

我用
选择*从VIEW1
全联盟
选择*从VIEW2

而且我收到错误ORA-01789。

我想要实现的是
T#    |       ORIGIN   | DESTINATION1 | DESTINATION2
------------------------------------------------------
1            abc            efg           hij

我创建的是所谓的关系 View ?

最佳答案

两个 View 必须具有相同的列数才能执行UNION ALL。查看Oracle引用:The UNION ALL, INTERSECT, MINUS Operators

关于sqlplus - 错误: ORA-01789: query block has incorrect number of result columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559955/

相关文章:

oracle - 如何获取 Oracle 数据库 IP?

php - SQL Plus 和 "regular"SQL 的区别?

所有列的Oracle列宽

oracle - 如何连接三个表并从三个表和 oracle 中检索选定的列?

sql - 为什么ORACLE在命令中不允许连续的换行符?

c# - 来自 Connection 的希伯来语

sql - "@"在 SQL*Plus 中有什么作用

oracle - 从 SQL*Plus 获取 ip 和端口

java - 如何从 Java 中的 SQL*Plus 以 "SYS"连接到 Oracle

database - sqlplus 无法在 linux 64 上启动