Fru*_*ner 10
这是找到的:
ORA-01790: 表达式必须与相应的表达式具有相同的数据类型
原因: SELECT列表项对应于同一集表达式的另一个查询中具有不同数据类型的SELECT列表项.
操作:检查所有相应的SELECT列表项是否具有相同的数据类型.使用TO_NUMBER,TO_CHAR和TO_DATE函数执行显式数据转换.
我没有看到你的查询,但我猜你的联盟中的一个选择不是选择与另一个相同的列.
很明显,海报的问题在 50 多年前就已经解决了,尽管如此,我还是想向任何阅读这篇文章以寻求帮助的人指出,所选属性(列)的顺序必须从一个联合语句到下一个匹配。仅仅让名称和数据类型匹配是不够的,尽管这在某种意义上是根本原因。但是由于在 Oracle 中处理 Union 语句的方式,可能会由于列的顺序不匹配而出现 ORA-01790 错误。
就我而言,我有一个带有两个选择的 UNION ALL 的查询。一个选择有一个名为“generic_column_name”的列作为选择中的第 25 项,另一个选择有一个名为“generic_column_name”的相同数据类型的列(我通过硬编码测试了几种方法,也使用强制数据类型转换)。然而,第二个选择在第 19 位有这个项目,所以从那里开始的所有列都被偏移,这触发了 ORA-01790 错误。
正如我在问题中提到的,我想获得有关如何解决我的问题的建议。我所做的就是在每个 select 语句中一次启用一列,并发现 SQL UNION 的最后一列不匹配。非常感谢您的参与和帮助,但我知道我的类型不匹配,我不知道如何排除故障。
| 归档时间: |
|
| 查看次数: |
57005 次 |
| 最近记录: |