오라클 ORA-00904: invalid identifier 오류 발생 원인 및 오류 해결 방법


프로그램에서 오라클에 연결해서 쿼리문을 실행할 때 Oracle.DataAccess.Client.OracleException: ‘ORA-00904: “xxx”: invalid identifier’와 같은 에러가 발생할 때가 있습니다. 주로 쿼리문에서 테이블의 열(Column)을 잘 못 선언했을 때 발생하는 에러 입니다.

이번 글에서는 오라클 ORA-00904: invalid identifier 오류를 발생 시키는 몇 가지 원인과 각각의 해결 방법에 대해 알아보겠습니다.

오라클 ORA-00904: invalid identifier 오류 발생 원인 및 오류 해결 방법

오라클 ORA-00904 오류 발생 원인 및 각각의 해결 방법

– 쿼리문에서 입력한 열 이름이 잘못 입력 되었을 때 발생합니다. 아래와 같은 세부 요인이 있는지 확인해 보세요.

  1. 테이블에 존재하지 않는 열 이름을 사용했을 경우 :
    해당 열 이름이 테이블의 Column 명으로 존재하지는 확인합니다. 쿼리문에서 열 이름을 지정할 때 오타가 있는 경우 흔히 발생합니다.
  2. 열 이름에 오라클 예약어를 사용했을 경우 :
    열 이름이 오라클의 예약어가 아닌지 확인합니다. 예약어를 열 이름으로 사용할 수는 없습니다.
  3. 정의된 열 이름의 대소문자가 서로 일치하지 않은 경우 :
    테이블에서 컬럼을 만들 때 개체(큰 따옴표(“)로 만묶인 열)로 만든 열 이름은 대소문자를 구분하므로 주의해서 사용해야 합니다.
  4. 작은 따옴표(‘)와 큰 따옴표(“)를 잘못 사용했을 경우 : 
    작은 따옴표(‘)는 문자열 값을 의미하지만 큰 따옴표(“)는 개체 이름으로 처리되므로 정확히 구분해서 사용해야 합니다.
  5. 열 이름에 사용할 수 없는 특수문자를 사용했을 경우 : 
    열 이름 앞에 숫자나 기호를 사용하고 있는지 확인해 봅니다.

마무리

복잡한 쿼리 문에서 오탈자를 찾는 것은 결코 쉬운 일이 아닙니다.
하나의 쿼리 문이 엄청 길고 복잡하게 되어 있다면 부분적으로 잘라서 실행해 보면 찾는 것이 가장 빠를 수 있습니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기