Skip to Main Content

Japanese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Oracle10gR2でうまくいくSQLが11gR2だとORA-00904がはかれる

883292Sep 8 2011 — edited Sep 8 2011
以下の4点がそろったSQLは10gR2では流れるが11gR2ではORA-00904のエラーが出て流れません。
これはどういったことなのでしょうか。
- *を使っている
- テーブルに別名をつけている
- 階層問合せを使っている
- SAMPLE_USER.ID_TABLE のような形でオブジェクトを見ている
どれか1個が欠けると普通に動きます。
理由をご存じの方がいらしたらお願いします。

サンプルのSQLを載せます。

CREATE USER SAMPLE_USER IDENTIFIED BY SAMPLE_USER;
GRANT DBA TO SAMPLE_USER;

CREATE TABLE SAMPLE_USER.ID_TABLE(
ID number(9, 0) primary key,
PARENT_ID number(9, 0)
);

INSERT INTO SAMPLE_USER.ID_TABLE (ID, PARENT_ID) VALUES (1,null);
INSERT INTO SAMPLE_USER.ID_TABLE (ID, PARENT_ID) VALUES (2,1);
INSERT INTO SAMPLE_USER.ID_TABLE (ID, PARENT_ID) VALUES (3,2);
INSERT INTO SAMPLE_USER.ID_TABLE (ID, PARENT_ID) VALUES (4,3);

COMMIT;


この前提で、SAMPLE_USER以外のユーザから以下を流すとORA-00904のエラーが出ます。

SELECT T.*,
LEVEL
FROM SAMPLE_USER.ID_TABLE T
START WITH T.PARENT_ID IS NULL
CONNECT BY PRIOR T.ID = T.PARENT_ID
ORDER BY LEVEL;
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 6 2011
Added on Sep 8 2011
2 comments
3,098 views