728x90
반응형
▶ 프로젝트
https://soheepark.tistory.com/183
[에러 메시지]
Caused by: java.sql.SQLSyntaxErrorException: ORA-02000: missing WITHIN keyword
Caused by: Error : 2000, Position : 422, Sql = select * from //에러 SQL문
1. 원인
해당 페이지에서 사용되는 xml 파일 중 누락된 부분이 있어 생긴 에러였다.
SQL 쿼리에서 LISTAGG 함수를 사용할 때 'WITHIN GROUP'절이 누락된 것이 자세한 원인이었다.
ISTAGG 함수는 집계 함수로, 결과를 하나의 문자열로 결합하는데 WITHIN GROUP절을 통해 정렬 순서를 지정해야 한다.
따라서 WITHIN GROUP절을 추가해야 에러를 해결할 수 있다.
2. 코드 분석
DBMS_LOB.SUBSTR(
listagg(
(select discnt_code
from discnt_info
where discnt_id = b.discnt_code)
), 100
) AS discntCode
LISTAGG 함수가 사용되었지만 같이 작성되어야 하는 WITHIN GROUP절이 없다.
3. 해결
DBMS_LOB.SUBSTR(
listagg(
(select discnt_code
from discnt_info
where discnt_id = b.discnt_code), ','
) WITHIN GROUP (ORDER BY NULL), 100
) AS discntCode
LISTAGG 함수 내 WITHIN GROUP절을 추가해주었더니 에러가 해결되었다.
728x90
반응형
'[Project] > 업무일지' 카테고리의 다른 글
[Java/Java Swing] ArrayIndexOutOfBoundsException (0) | 2024.07.12 |
---|---|
[XML/SQL/Oracle] SQLSyntaxErrorException: ORA-00911: invalid character (0) | 2024.07.11 |
[Java Swing] ArrayIndexOutOfBoundsException (0) | 2024.07.10 |
[Java, Java Swing/신규 개발] 쿠폰 발급 및 사용 내역 조회 (1) | 2024.07.10 |
NestedSQLException, ProbeException (0) | 2024.07.04 |