以下查询适用于 Windows 上的 Oracle 10.2.0.1.0,但不适用于 Linux 上的 Oracle 10.2.0.2.0。
错误报告:SQL 错误:ORA-00904: "T"."AUDIT_USECS": invalid identifier 00904. 00000 - "%s: invalid identifier"
它在我删除子查询后工作。我发现如果在子查询中使用 T 的字段,则会发生错误。是说子查询不能访问主查询中的字段吗?
有什么问题?我怎样才能让它在 linux 上的 oracle 上运行?谢谢!
CREATE TABLE AUDITHISTORY(
CASENUM numeric(20, 0) NOT NULL,
AUDIT_DATE date NOT NULL,
USER_NAME varchar(255) NULL,
AUDIT_USECS numeric(6, 0) NOT NULL,
TYPE_ID INT NOT NULL )
询问:
SELECT T.CASENUM,
T.USER_NAME,
T.AUDIT_DATE AS STARTED,
(SELECT *
FROM (SELECT S.AUDIT_DATE
FROM AUDITHISTORY S
WHERE S.CASENUM=T.CASENUM AND TYPE_ID=2
AND S.USER_NAME=T.USER_NAME
AND (S.AUDIT_DATE > T.AUDIT_DATE OR (S.AUDIT_DATE = T.AUDIT_DATE AND S.AUDIT_USECS > T.AUDIT_USECS))
ORDER BY S.AUDIT_DATE ASC,S.AUDIT_USECS ASC
) WHERE rownum <= 1) AS ENDED
FROM AUDITHISTORY T WHERE TYPE_ID=1
横幅
Oracle 数据库 10g 企业版版本 10.2.0.1.0 - 产品 PL/SQL 版本 10.2.0.1.0 - 生产
CORE 10.2.0.1.0
用于 32 位 Windows 的生产 TNS:版本 10.2.0.1.0 - 生产
NLSRTL 版本 10.2。 0.1.0 - 生产
横幅
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod PL/SQL Release 10.2.0.2.0 - Production
CORE 10.2.0.2.0 Production
TNS for Linux:版本 10.2.0.2.0 - Production
NLSRTL 版本 10.2.0.2.0 - 生产