DBAtlas · 데이터베이스 운영 아틀라스

ORA-00918: column ambiguously defined

Oracle

의미

쿼리의 여러 테이블에 같은 이름의 컬럼이 있고 테이블/alias 접두어 없이 사용되어, Oracle이 어느 테이블의 컬럼인지 판단할 수 없다.

원인

조인된 두 테이블 모두에 같은 이름의 컬럼이 있음(예: 양쪽의 ID). SELECT, WHERE 또는 ORDER BY에서 컬럼을 한정하지 않고(접두어 없이) 사용함.

해결 방법

모호한 모든 컬럼을 테이블 이름 또는 alias로 한정한다: SELECT a.id, b.id FROM tableA a JOIN tableB b ON a.id = b.a_id; 테이블에 짧은 alias를 붙이고 모든 컬럼에 접두어를 붙여 가독성과 명확성을 높인다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목