次のクエリは、Windows 上の Oracle 10.2.0.1.0 では機能しますが、Linux 上の Oracle 10.2.0.2.0 では機能しません。
エラー レポート: SQL エラー: ORA-00904: "T"."AUDIT_USECS": 無効な識別子 00904. 00000 - "%s: 無効な識別子"
サブクエリを削除すると機能します。サブクエリで 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 Database 10g Enterprise Edition リリース 10.2.0.1.0 - Prod 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 リリース 10.2.0.2.0 - Prod PL/SQL リリース 10.2.0.2.0 - プロダクション
CORE 10.2.0.2.0 プロダクション
TNS for Linux: バージョン 10.2.0.2.0 - プロダクション
NLSRTL バージョン 10.2.0.2.0 - 製造