执行下面的Query时,它已成功执行。
但是当只执行时(SELECT CREDITDOCUMENTID FROM TBLTPAYMENT),它会给出错误,例如“00904. 00000 - ”%s:无效的标识符“”。
不知道它在oracle 12c数据库中的工作方式。
SELECT *
FROM TBLTCREDITCREDITDOCUMENTREL
WHERE CREDITDOCUMENTID IN
(SELECT CREDITDOCUMENTID
FROM TBLTCREDITDOCUMENT
WHERE CREDITDOCUMENTID IN
(SELECT CREDITDOCUMENTID FROM TBLTPAYMENT )
);
答案 0 :(得分:2)
一个有根据的猜测(我打赌它)将是您的列CREDITDOCUMENTID
不是来自TBLTPAYMENT
表的列,而是来自范围内的其他表,例如在TBLTCREDITDOCUMENT
。这很容易检查。尝试运行此查询:
SELECT *
FROM TBLTCREDITCREDITDOCUMENTREL
WHERE CREDITDOCUMENTID IN
(SELECT CREDITDOCUMENTID
FROM TBLTCREDITDOCUMENT
WHERE CREDITDOCUMENTID IN
(SELECT TBLTPAYMENT.CREDITDOCUMENTID FROM TBLTPAYMENT)
);
如果您符合TBLTPAYMENT.CREDITDOCUMENTID
列的资格。你会得到与你自己运行最内层SELECT
时相同的错误。