ORA-00923: FROM 키워드가 필요한 위치에 없습니다. (ORA-00923: FROM keyword not found where expected)

ORA-00923: FROM 키워드가 필요한 위치에 없습니다. (ORA-00923: FROM keyword not found where expected) 오류가 발생하였을 때, 처리방법에 대해 알아보도록 합시다. 처리를 위한 접근방식은 다음과 같으며, 해당 사항을 차근차근 검토하면 충분히 해결할 수 있을 것입니다.

ORA-00923: FROM 키워드가 필요한 위치에 없습니다.

  • 정말로 FROM 키워드를 누락한 경우
  • FROM을 FORM으로 오타
  • 마지막 칼럼과 FROM을 띄어쓰지 않은 경우
  • 컬럼 중간에 콤마(,)를 생략한 경우

정말로 FROM 키워드를 누락한 경우

SELECT * EMP; 와 같이 FROM을 실수로 적지 않았거나, 프로그래밍에서 문자열 연결에 다른 참조를 하였을 가능성이 있습니다.

SELECT * EMP;

ERROR at line 1:
ORA-00923: FROM keyword not found where expected

FROM을 FORM으로 오타

SELECT * FORM EMP; 와 같이 오타로 작성한 경우입니다. FORM도 키워드 중 하나다 보니, 사용하는 데이터베이스 툴에 따라 눈치 채기 어려울 수도 있습니다.

SELECT * FORM EMP;

ERROR at line 1:
ORA-00923: FROM keyword not found where expected

마지막 칼럼과 FROM을 띄어쓰지 않은 경우

SELECT EMPNOFROM EMP; 와 같은 경우에는, 문자열 연결에서 마지막에 스페이스를 안 넣은 경우가 많습니다.

특히, 예시 중에 가장 많이 발생하는 경우입니다. String 또는 StringBuilder를 사용하여 문자열을 연결할 때에, FROM 키워드 바로 앞에 있는 컬럼 이후에 공백이 없어서 발생하는 경우가 있습니다.

SELECT EMPNOFROM EMP;

ERROR at line 1:
ORA-00923: FROM keyword not found where expected

컬럼 중간에 콤마(,)를 생략한 경우

인라인 뷰, 서브쿼리 등을 사용할 때에 문장이 길어지면서 FROM 키워드를 누락하는 경우입니다.

SELECT (SELECT DNAME
               FROM DEPT
              WHERE DEPT.DEPTNO = EMP.DEPTNO)
               DEPT_DNAME
            EMP.*
       FROM EMP;

ERROR at line 5:
ORA-00923: FROM keyword not found where expected

ORA-00923: FROM keyword not found where expected 해결하기

한 개씩 점검하시면 해결하실 수 있을 것입니다.

SELECT * EMP;

SELECT * FORM EMP;

SELECT EMPNOFROM EMP;

SELECT (SELECT DNAME
          FROM DEPT
         WHERE DEPT.DEPTNO = EMP.DEPTNO)
          DEPT_DNAME
       EMP.*
  FROM EMP;

댓글