[SQL] 내부 쿼리에 ORDER BY주는 ORA-00907 오른쪽 괄호 누락
SQL내부 쿼리에 ORDER BY주는 ORA-00907 오른쪽 괄호 누락
나는 쿼리를 테스트하기 위해 노력하고 ORA-00907 오류가 발생하고있다. 나는 오류 때문에 내가 RUN.RN_RUN_ID을 위해 사용하고 내부 쿼리에 믿습니다. 자체 내부 쿼리는 잘 작동하고 나는 내부 쿼리의 결과, 외부 쿼리가 작동 벌금을 제공합니다. 내가 잘못을하고있는 중이 야 무엇에 어떤 통찰력이 많이 주시면 감사하겠습니다.
Select
RELEASES.REL_NAME AS RELEASE_NAME,
RELEASE_CYCLES.RCYC_NAME AS CYCLE_NAME,
TESTCYCL.TC_TESTCYCL_ID AS TEST_INSTANCE_ID,
TEST.TS_NAME AS TEST_CASE_NAME,
TEST.TS_USER_26 AS TEST_POST_CONDITIONS,
TEST.TS_USER_25 AS TEST_PRE_CONDITIONS,
TEST.TS_TEST_ID AS TEST_CASE_ID,
TEST.TS_DESCRIPTION AS TEST_CASE_DESCRIPTION,
TESTCYCL.TC_STATUS AS TEST_ACTUAL_RESULTS,
TEST.TS_DEV_COMMENTS AS TEST_CASE_COMMENTS,
TEST.TS_RESPONSIBLE AS TEST_CASE_AUTHOR,
TEST.TS_CREATION_DATE AS TEST_CASE_CREATION_DATE,
TESTCYCL.TC_EXEC_DATE AS EXECUTION_DATE,
TESTCYCL.TC_EXEC_TIME AS EXECUTION_TIME,
TESTCYCL.TC_ACTUAL_TESTER AS EXECUTED_BY,
STEP.ST_ID AS STEP_ID,
STEP.ST_STEP_NAME AS STEP_NUMBER,
STEP.ST_DESCRIPTION AS STEP_DESCRIPTION,
STEP.ST_EXPECTED AS EXPECTED_RESULTS,
STEP.ST_ACTUAL AS ACTUAL_RESULTS,
STEP.ST_USER_07 AS STEP_COMMENT,
STEP.ST_STATUS AS STEP_STATUS,
STEP.ST_STEP_ORDER AS STEP_ORDER,
STEP.ST_USER_01 AS STEP_TYPE,
RUN.RN_RUN_ID AS RUN_ID From ((((((RELEASES JOIN RELEASE_CYCLES
ON RELEASES.REL_ID = RELEASE_CYCLES.RCYC_PARENT_ID
AND RELEASES.REL_NAME = 'XYZ') LEFT JOIN CYCLE
ON RELEASE_CYCLES.RCYC_ID = CYCLE.CY_ASSIGN_RCYC) LEFT JOIN TESTCYCL
ON CYCLE.CY_CYCLE_ID = TESTCYCL.TC_CYCLE_ID) LEFT JOIN RUN
ON TESTCYCL.TC_TESTCYCL_ID = RUN.RN_TESTCYCL_ID) LEFT JOIN TEST
ON TESTCYCL.TC_TEST_ID = TEST.TS_TEST_ID) LEFT JOIN STEP
ON RUN.RN_RUN_ID = STEP.ST_RUN_ID) WHERE (TEST.TS_TYPE = 'MANUAL' OR
TEST.TS_TYPE = 'QUICKTEST_TEST' OR TEST.TS_TYPE = 'LR-SCENARIO')
AND RUN.RN_RUN_ID in(Select max(RUN.RN_RUN_ID) From (((((((RELEASES JOIN RELEASE_CYCLES
ON RELEASES.REL_ID = RELEASE_CYCLES.RCYC_PARENT_ID AND RELEASES.REL_NAME = 'XYZ')
LEFT JOIN CYCLE ON RELEASE_CYCLES.RCYC_ID = CYCLE.CY_ASSIGN_RCYC)
LEFT JOIN TESTCYCL ON CYCLE.CY_CYCLE_ID = TESTCYCL.TC_CYCLE_ID)
LEFT JOIN RUN ON TESTCYCL.TC_TESTCYCL_ID = RUN.RN_TESTCYCL_ID)
LEFT JOIN TEST ON TESTCYCL.TC_TEST_ID = TEST.TS_TEST_ID)
LEFT JOIN STEP ON RUN.RN_RUN_ID = STEP.ST_RUN_ID)
LEFT JOIN LINK ON STEP.ST_ID = LINK.LN_ENTITY_ID AND LINK.LN_ENTITY_TYPE = 'STEP')
WHERE (TEST.TS_TYPE = 'MANUAL' OR TEST.TS_TYPE = 'QUICKTEST_TEST' OR
TEST.TS_TYPE = 'LR-SCENARIO')AND TEST.TS_TEST_ID =145965
ORDER BY TESTCYCL.TC_TESTCYCL_ID)
ORDER BY TESTCYCL.TC_TESTCYCL_ID,STEP.ST_STEP_ORDER
해결법
-
==============================
1.코딩 스타일과 불필요한 중첩 된 괄호 읽고 해석이 정말 열심히합니다. 하지만 일부 의견에 반대, ORA-00907는 항상 괄호의 홀수를 의미하지 않는다 것을 도움을 수행, 그것은 파서가 구제 원인 것보다 일반적인 구문 오류를 표시 할 수 있습니다. 이 경우에는 매우 도움이되지 않습니다.
코딩 스타일과 불필요한 중첩 된 괄호 읽고 해석이 정말 열심히합니다. 하지만 일부 의견에 반대, ORA-00907는 항상 괄호의 홀수를 의미하지 않는다 것을 도움을 수행, 그것은 파서가 구제 원인 것보다 일반적인 구문 오류를 표시 할 수 있습니다. 이 경우에는 매우 도움이되지 않습니다.
문제는 당신이에 대해 비교하고있는 하위 쿼리 내에서, 끝에서 두 번째 줄에 ORDER BY 절입니다 :
... AND RUN.RN_RUN_ID in(Select max(RUN.RN_RUN_ID) From (((((((RELEASES JOIN RELEASE_CYCLES ... TEST.TS_TYPE = 'LR-SCENARIO')AND TEST.TS_TEST_ID =145965 ORDER BY TESTCYCL.TC_TESTCYCL_ID) ORDER BY TESTCYCL.TC_TESTCYCL_ID,STEP.ST_STEP_ORDER
마지막 순서는 분명히 허용되지만 그 하위 쿼리에서이 아닙니다. 이 끝나야 그래서 :
... TEST.TS_TYPE = 'LR-SCENARIO')AND TEST.TS_TEST_ID =145965) ORDER BY TESTCYCL.TC_TESTCYCL_ID,STEP.ST_STEP_ORDER
내가 스키마를 필요는 없지만, 간단한 데모 세력의 도움이 보여 같은 것을 테스트 할 수 없습니다 :
select d1.dummy from dual d1 where d1.dummy in ( select dummy from dual d2 order by d2.dummy ) order by d1.dummy; Error at Command Line : 6 Column : 3 Error report - SQL Error: ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis"
내부 순서로 분리 :
select d1.dummy from dual d1 where d1.dummy in ( select dummy from dual d2 ) order by d1.dummy; DUMMY ----- X
오류가 어떤 의미를 만들 않도록 당신이 무엇을 잘못 알면, 대신에 의한 순서의)을보고 기대하고있다; 하지만 정말 당신이 그것을 좁히는 데 도움이되지 않습니다.
덧붙여,이 오라클 지원 문서 731577.1에서 참조 :
그것은하지만 중첩 된 하위 쿼리, 인라인 뷰에서 무시 / 허용됩니다. (하지만 ... 여전히 오류가 발생하지 않는 예외가있을 수 있음)
from https://stackoverflow.com/questions/21859866/order-by-with-inner-query-giving-ora-00907-missing-right-parenthesis by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] IOS : 이상의 원인을 조기 메모리 해제 번만 sqlite가 동일한 매개 변수를 사용하여 (0) | 2020.06.19 |
---|---|
[SQL] 날짜 차이가 오라클 SQL에서 주말과 휴일을 제외하고 사용자 정의 함수를 만들 (0) | 2020.06.19 |
[SQL] ORA - 내부와 00,933 혼란 "로"가입 (0) | 2020.06.19 |
[SQL] 액세스에서 여러 필드 및 수출에 피벗 (0) | 2020.06.19 |
[SQL] 당신은 프레스토 / 아테나의 AT TIME ZONE의 시간대 매개 변수의 열을 사용할 수 있습니까? (0) | 2020.06.19 |