Am trying to figure out was wrong with this simple query that uses MATCH_RECOGNIZE. Am getting the error ORA-00933: SQL command not properly ended. What could I be missing?
SELECT EMPLOYEE_ID,DEPARTMENT_ID,SALARY FROM EMPLOYEES
MATCH_RECOGNIZE(
PARTITION BY DEPARTMENT_ID
ORDER BY HIRE_DATE
MEASURES
EMPLOYEE_ID,DEPARTMENT_ID,SALARY
ONE ROW PER MATCH
PATTERN( A B* )
DEFINE
B AS ( B.SALARY < PREV(B.SALARY))
)
Best Answer
When I first ran your query on SQL*PLUS (Oracle 12.2)-
I didn't get
ORA-0933
as you have mentioned. But when I ran your code on Oracle 11.2.0.4 then I got the same error as you have said. And the reason is, theMATCH_RECOGNIZE
clause is added on analytic function syntax from Oracle 12c only.Then on 12c, I corrected the error as-
which runs perfectly for me, at least without any syntax error.