0

在 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    )
  ); 
4

1 回答 1

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

于 2017-09-26T10:25:42.740 回答