内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
ORA-01790常见语法
表达式必须与对应表达式具有相同的数据类型
Expression must have same datatype as corresponding expression
错误描述
在 UNION、UNION ALL、INTERSECT 或 MINUS 操作中,每个 SELECT 中的对应列没有兼容的数据类型。
可能原因
- 第一个 SELECT 返回 VARCHAR2 但第二个在相同位置返回 NUMBER
- 集合操作中混合了 CLOB 和 VARCHAR2
- UNION 分支中相同位置的日期和字符串列
解决方案
- 1使用显式 CAST 或 TO_CHAR/TO_NUMBER 对齐数据类型
- 2确保两个 SELECT 列表以相同顺序返回相同类型
- 3如果大小允许,将 CLOB 转换为 VARCHAR2:CAST(clob_col AS VARCHAR2(4000))
诊断命令
-- Check data types of both SELECT lists in the UNION query#syntax#datatype#union#set-operation