함번보고 두번보고
[MyBatis] ORA-13831 지정된 slq 프로파일 또는 패치 이름이 부적합합니다. 본문
환경 : Spring, MyBatis
ORA-13831 지정된 slq 프로파일 또는 패치 이름이 부적합합니다.
# 원인
주석 위치 오류.
MyBatis를 쓰는 환경에서 나중에 디버그를 편하게 하기 위해 주석문을 SQL 안에 넣어서 개발하는 경우가 종종 있는데
주석의 위치를 괄호 안에다가 할 경우 위와 같은 오류가 발생하였다.
(SQL Developer에서는 정상)
ex) #####.xml
WITH
HAM AS ( /* Query 소스 위치 */
SELECT
ID,
NAME,
DEPT_CD,
DEPT_NM
FROM
EMPLOYEE
WHERE 1=1
AND NAME = #{deptCd}
AND LANG_CD = 'KO'
)
SELECT
...
FROM
...
WHERE
...
# 해결
해결은 간단하다.
주석을 코드 안에 넣되 괄호 밖으로 빼주면 된다.
ex) #####.xml
WITH /* Query 소스 위치 */
HAM AS (
SELECT
ID,
NAME,
DEPT_CD,
DEPT_NM
FROM
EMPLOYEE
WHERE 1=1
AND NAME = #{deptCd}
AND LANG_CD = 'KO'
)
SELECT
...
FROM
...
WHERE
...
Comments