2008-10-30 4 views
0

우리는 오류 메시지 ORA-00936 다음과 같은 SQL에 대한 누락 된 표현을보고있다 이 범위에 :ORA-00936 - 다음 SQL과 누락 된식이 발생할 수 있습니까? 비슷한 정말 아닌이 때문에 내부로 재 작성에 가입 시키거나 훨씬 더 큰 SQL 단지 잘라 다운 버전인지</p> <p>참고 :

select (select count(*) from gt_roster where ROS_ROSTERPLAN_ID = RPL_ID) 
from gt_rosterplan 
where RPL_ID = 432065061 

내가 무엇을 시도했다 :

이 실패 SQL입니다 * 가장 안쪽의 SQL을 추출하고 외부 SQL에서 ID를 대체 나에게 숫자 12을 제공합니다. * 서브 쿼리와 카운트 (*) 개 별칭 모두에 별칭 지정 그리고 동시에 둘 다 결과를 바꾸지 않습니다 (즉, 여전히 오류입니다)

그 밖의 무엇을보고 싶습니까?

위의 내용은 테이블 일 뿐이며 RPL_ID는 gt_rosterplan의 기본 키이며 ROS_ROSTERPLAN_ID는이 열의 외래 키이므로 기본적으로 여기에 숨겨진 정보가 없습니다.


편집 : 응답에서가 대답하는 열이 고유하게 테이블을 가로 질러 이름대로 아니, 당신이 여기 별칭을 필요가 없습니다. 해결


: 문제는 클라이언트가 잘못된 클라이언트 드라이버 버전 9.2.0.1을 실행하고, 그 버전에 문제가 알려진 것이 었습니다.

답변

1

열 이름이 모호하지 않다는 가정하에 (그리고 다른 오류가 발생할 수도 있음) 가정합니다. 나는 동등한 문을 실행하고 오류없는 결과를 얻었다 : 거기 또는 ORA-00936 오류를 선도하는 오라클 버그되었을 것으로 보인다 인터넷 검색

SQL> select (select count(*) from emp2 where empdeptno = deptno) 
    2 from dept 
    3 where deptno=10 
    4/

(SELECTCOUNT(*)FROMEMP2WHEREEMPDEPTNO=DEPTNO) 
--------------------------------------------- 
              3 

을 - this for example를 참조하십시오.

+0

그래, 그랬다. –

3

문제는 클라이언트가 잘못된 클라이언트 드라이버 버전 인 9.2.0.1을 실행 중이며 해당 버전에 알려진 문제점이 있다는 것입니다.