2017-09-26 10 views
0

아래 쿼리를 실행하는 동안 해당 쿼리가 성공적으로 실행되었습니다.내부 쿼리 작업 흐름

하지만 (SELECT CREDITDOCUMENTID FROM TBLTPAYMENT) 만 실행하면 "00904. 00000 -"% s : 잘못된 식별자 ""와 같은 오류가 발생합니다.

오라클 12c 데이터베이스에서 어떻게 작동하는지 알 수 없습니다.

SELECT * 
FROM TBLTCREDITCREDITDOCUMENTREL 
WHERE CREDITDOCUMENTID IN 
    (SELECT CREDITDOCUMENTID 
    FROM TBLTCREDITDOCUMENT 
    WHERE CREDITDOCUMENTID IN 
    (SELECT CREDITDOCUMENTID FROM TBLTPAYMENT ) 
); 
+1

TBLTCREDITCREDITDOCUMENTREL, TBLTCREDITDOCUMENT 및 TBLTPAYMENT –

답변

2

추측은 (그리고 나는 그것에 걸거야) 당신의 열 CREDITDOCUMENTIDTBLTPAYMENT 테이블에서 열 아니라고, 그러나 것 범위에 다른 테이블, 예를 들어,에서 TBLTCREDITDOCUMENT. 이것은 확인하기 쉽습니다. 이 쿼리를 실행 해보십시오 :

SELECT * 
FROM TBLTCREDITCREDITDOCUMENTREL 
WHERE CREDITDOCUMENTID IN 
    (SELECT CREDITDOCUMENTID 
    FROM TBLTCREDITDOCUMENT 
    WHERE CREDITDOCUMENTID IN 
    (SELECT TBLTPAYMENT.CREDITDOCUMENTID FROM TBLTPAYMENT) 
); 

경우 어느 당신이 TBLTPAYMENT.CREDITDOCUMENTID 열을 자격. SELECT 자체를 실행할 때와 동일한 오류가 발생합니다.

+0

의 테이블 정의를 공유하시기 바랍니다 [이 문제를 연구하면서, BTW 나는 오라클 12.2.0.1에서 흥미로운 버그를 발견했다 (https://twitter.com/lukaseder/status/912626775561207808) –

+0

귀하의 답변에 대해 Lukas에게 감사드립니다. CREDITDOCUMENTID는 TBLTPAYMENT 테이블의 열이 아니지만 제공된 쿼리를 실행하는 동안 성공적으로 실행됩니다. – SamDPatel

+0

@SamDPatel : 당신은 확실합니까? 바로 거기에 다소 강한 모순이 있습니다. –