跳到主要内容
内容阅读

在知识库中专注阅读,并随时返回相关工具与课程

ORA-01790常见语法

表达式必须与对应表达式具有相同的数据类型

Expression must have same datatype as corresponding expression

错误描述

在 UNION、UNION ALL、INTERSECT 或 MINUS 操作中,每个 SELECT 中的对应列没有兼容的数据类型。

可能原因

  • 第一个 SELECT 返回 VARCHAR2 但第二个在相同位置返回 NUMBER
  • 集合操作中混合了 CLOB 和 VARCHAR2
  • UNION 分支中相同位置的日期和字符串列

解决方案

  1. 1使用显式 CAST 或 TO_CHAR/TO_NUMBER 对齐数据类型
  2. 2确保两个 SELECT 列表以相同顺序返回相同类型
  3. 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

同类错误码(语法)

想系统掌握这个领域?

「语法」在课程 Day 1-10 中有 10 篇完整实战教程

完整操作步骤真实截图踩坑总结
免费试读查看完整课程¥128/月起 · 解锁全部 2738+ 篇
ORA-01790: 表达式必须与对应表达式具有相同的数据类型 - 原因与解决方案 | DBA 学习之路