DBAtlas · 数据库运维图谱

ORA-00918: column ambiguously defined(列定义不明确)

Oracle

含义

查询中有多个表包含同名的列,由于使用时未加表/别名前缀,Oracle 无法确定它属于哪个表。

原因

连接的两个表都有同名列(如两者都有 ID);在 SELECT、WHERE 或 ORDER BY 中未限定(未加前缀)地使用该列。

解决方法

用表名或别名限定每个不明确的列:SELECT a.id, b.id FROM tableA a JOIN tableB b ON a.id = b.a_id; 为表指定简短的别名,并为所有列加上前缀,以提高可读性和清晰度。

在 DBAtlas 中打开 →

同一数据库的其他条目