O estilo de codificação e os colchetes aninhados desnecessários tornam isso muito difícil de ler e interpretar. Mas também ajuda que, ao contrário de alguns comentários, um ORA-00907 nem sempre significa um número ímpar de parênteses, pode indicar um erro de sintaxe mais geral que fez o analisador falhar. Neste caso não é muito útil.
O problema é o
order by
cláusula na penúltima linha, dentro da subconsulta que você está comparando com in
:...
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
A ordenação final é obviamente permitida, mas nessa subconsulta não é. Então deve terminar:
...
TEST.TS_TYPE = 'LR-SCENARIO')AND TEST.TS_TEST_ID =145965)
ORDER BY TESTCYCL.TC_TESTCYCL_ID,STEP.ST_STEP_ORDER
Não posso testar isso porque não tenho seu esquema, mas uma demonstração mais simples pode ajudar a demonstrar:
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"
Removendo o
order by
interno :select d1.dummy
from dual d1
where d1.dummy in (
select dummy
from dual d2
)
order by d1.dummy;
DUMMY
-----
X
Ele espera ver um
)
em vez de order by
, então o erro faz algum sentido, uma vez que você saiba o que está errado; mas isso realmente não ajuda a reduzi-lo. Aliás, isso é mencionado no documento de suporte da Oracle 731577.1:
ObtendoORA-00907: missing right parenthesis
ao usar umORDER BY
cláusula em uma subconsulta. Quando oORDER BY
cláusula for removida, a consulta será executada sem erros.
...
Este é o comportamento esperado pelo Bug 4944718ORDER BY
em uma subconsulta não deve funcionar, pois a ordem das linhas é passada para a consulta externa e não tem impacto.
É permitido/ignorado em uma visualização inline, mas não em uma subconsulta aninhada. (Embora possa haver exceções em que ainda não gera um erro ...)