본문 바로가기
2.2 DB/Oracle Error

[Oracle Error] ORA-00907: "missing right parenthesis" / 우괄호가 없습니다.

by Dohi._. 2024. 10. 9.
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

'2.2 DB > Oracle Error' 카테고리의 다른 글

[Oracle Error] Oracle 에러 모음 (ORA-)  (0) 2024.10.09

댓글