728x90
SQL 실행 중 오류가 발생하였습니다.
ORA-00907: missing right parenthesis
SELECT TRUNC((1 * (1/100)) -- 이부분에 )하나가 빠졌다
FROM dual
이렇게 우괄호가 하나 빠진경우에 나오는 코드로써 코드를 잘 점검하면 해결이 되는 코드이다
가끔 우괄호라 해서 괄호만 보기도 하는데
다음과 같은 경우에도 뜬다
해당 코드에서 찾아보자
WITH Possible_CAR_TYPE AS (
SELECT DISTINCT c.CAR_ID
, c.CAR_TYPE
, c.DAILY_FEE
, d.DISCOUNT_RATE
FROM CAR_RENTAL_COMPANY_CAR c
, CAR_RENTAL_COMPANY_DISCOUNT_PLAN d
, (SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE <= TO_DATE('2022-11-30', 'YYYY-MM-DD')
AND END_DATE >= TO_DATE('2022-11-01', 'YYYY-MM-DD')
) h
on -- 이게 왜 있을까?
WHERE c.CAR_TYPE IN ('세단', 'SUV')
AND c.CAR_TYPE = d.CAR_TYPE
AND c.CAR_ID = h.CAR_ID(+)
AND h.CAR_ID IS NULL
AND d.DURATION_TYPE = '30일 이상'
)
SELECT CAR_ID
, CAR_TYPE
, TRUNC((DAILY_FEE * (1 - DISCOUNT_RATE / 100)) * 30) AS FEE
FROM Possible_CAR_TYPE
WHERE (DAILY_FEE * (1 - DISCOUNT_RATE / 100)) * 30 BETWEEN 500000 AND 2000000
ORDER BY FEE DESC
, CAR_TYPE ASC
, CAR_ID DESC;
해당 코드에서 는 on이 필요없는데 있어서 들어간 경우이다 (Join의 산물)
이경우에도 우괄호에러가 뜬다
ORA-00907가 뜰경우 코드를 잘 점검하면 해결이 된다
728x90
댓글