본문 바로가기
DBMS(DataBase Management System)/티베로(Tibero)

[티베로] 'TBR-8027: Column name is ambiguous' 해결 방법

by 연구자 공학코드 2023. 1. 16.

공지사항

  1. 코스닥 상장사 중견기업인 에스트래픽에서 사세 확장으로 인해 아래와 같이 채용을 진행 중입니다.
    도로·교통 분야 Full-Stack 개발자 채용(신입/경력): https://www.jobkorea.co.kr/Recruit/GI_Read/45943451
    도로·교통 분야 서버 개발자 채용(경력): https://www.jobkorea.co.kr/Recruit/GI_Read/45943457

  2. 제가 운영하는 네이버 카페 개발자 커뮤니티 코어큐브(https://cafe.naver.com/ewsncube)에 가입하시면 컴퓨터 관련 학습 자료와 질의응답을 제공받으실 수 있습니다.

728x90
반응형

오류 발생 이유

쿼리(Query)를 작성하다보면 'TBR-8027: Column name is ambiguous'를 만날 때가 있다. 이 경우는 조인(Join) 등의 이유로 컬럼(Column)의 명칭이 중복되는 경우에 발생한다.

오류 예시

아래의 쿼리 처럼 A 테이블과 B 테이블을 가게명(STORE_NAME)으로 조인할 때 A 테이블의 가게명과 B 테이블의 가게명이 존재하게 되므로 명시적으로 어느 테이블의 가게명을 사용할 것인지를 지정해야 한다.

SELECT STORE_NAME, STORE_SALES, PRODUCT_PRICE
FROM 
	(SELECT 'APPLE' AS STORE_NAME, '100' AS STORE_SALES FROM dual) A
	LEFT JOIN
	(SELECT 'APPLE' AS STORE_NAME, '200' AS PRODUCT_PRICE FROM dual) B
	ON A.STORE_NAME = B.STORE_NAME

오류가 발생한 쿼리 화면
오류가 발생한 쿼리 결과 화면

해결 방법

컬럼 명칭 앞에 해당하는 테이블의 명칭을 붙여서 명시적으로 구분할 수 있게 쿼리를 작성하면 해결된다.

SELECT A.STORE_NAME, STORE_SALES, PRODUCT_PRICE
FROM 
	(SELECT 'APPLE' AS STORE_NAME, '100' AS STORE_SALES FROM dual) A
	LEFT JOIN
	(SELECT 'APPLE' AS STORE_NAME, '200' AS PRODUCT_PRICE FROM dual) B
	ON A.STORE_NAME = B.STORE_NAME

문제가 해결된 쿼리 화면
문제가 해결된 쿼리의 실행 결과 화면

 

728x90
반응형

댓글