티스토리 뷰

공장 (factory)/- Errors

[Oracle] ORA-00918: column ambiguously defined

공부하는 나부랭이, 무중력고기 2013.07.10 14:58

   paing 처리를 위해 rownum(의사컬럼)을 사용했는데 에러가 났다.


   찾아보니 테이블을 조인할 때, 컬럼명이 같은 경우가 있는데 이 때 rownum을 사용하면 column ambiguously defined 에러가 발생한다고 한다. 컬럼명이 같거나 from절에 주는 테이블명이 중복되지 않는지 살펴볼 필요가 있다.


   나의 경우는 qna테이블의 qc_no 컬럼과 qc테이블의 qc_no 컬럼의 이름이 같았기 때문에 일어난 에러였다.





  해결 방법은 다음과 같다.


   테이블명이 중복된 경우 → 테이블명을 다르게 명시해준다.

   컬럼명이 중복된 경우 → 위의 이미와 같이 중복되는 컬럼명에 Alias로 다른 이름을 부여해준다.




최종본.

select B.* from

(select rownum as rnum, A.* from

(select

  qna.qna_title, qna.qna_no

, qna.qna_content, qna.qna_count, qna.qna_seq

, qna.qna_date, qna.qna_group, qna.qna_depth

, qna.qc_no as qna_qc_no, qna.qna_writer, qc.qc_category

, qc.qc_no

from qna inner join qc on (qna.qc_no=qc.qc_no)

order by qna.qna_no desc)A)B

WHERE rnum BETWEEN 1 AND 10

;

댓글
댓글쓰기 폼
Total
1,376,630
Today
194
Yesterday
628
«   2019/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
글 보관함