Skip to Main Content

SQL & PL/SQL

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!

Oracle 11g - receive Invalid Identifier error when using username.table.column

user12017730May 20 2016 — edited Aug 3 2016

I have a query like this

SQL> SELECT DISTINCT  ASAP.SPEC_REL.ITEM_SPEC_ID_DWN

  2                     FROM ASAP.SPEC_REL

  3                     WHERE LEVEL >= 0

  4                     START WITH ASAP.SPEC_REL.ITEM_SPEC_ID_DWN = 1059

  5                     CONNECT BY   PRIOR ASAP.SPEC_REL.ITEM_SPEC_ID_DWN =  ASAP.SPEC_REL.ITEM_SPEC_ID_UP AND

  6                                                             ASAP.SPEC_REL.ITEM_SPEC_ID_DWN <>  ASAP.SPEC_REL.ITEM_SPEC_ID_UP

  7                     ORDER BY ASAP.SPEC_REL.ITEM_SPEC_ID_DWN DESC;

                        ORDER BY ASAP.SPEC_REL.ITEM_SPEC_ID_DWN DESC

                                 *

ERROR at line 7:

ORA-00904: "ASAP"."SPEC_REL"."ITEM_SPEC_ID_DWN": invalid identifier

But the column exists in the table

SQL> desc ASAP.SPEC_REL

Name                                      Null?    Type

----------------------------------------- -------- ----------------------------

ITEM_SPEC_ID_UP                           NOT NULL NUMBER(9)

ITEM_SPEC_ID_DWN                          NOT NULL NUMBER(9)

INCLUDE_NBR_DWN_IND                                CHAR(1)

LAST_MODIFIED_DATE                        NOT NULL DATE

LAST_MODIFIED_USERID                      NOT NULL VARCHAR2(8)

ORDER_OF_ENTRY                                     NUMBER(3)

If i remove the user.table(asap.spec_rel)  from the query, it works fine.

SQL> SELECT DISTINCT  ITEM_SPEC_ID_DWN
  2                     FROM ASAP.SPEC_REL
  3                     WHERE LEVEL >= 0
  4                     START WITH ITEM_SPEC_ID_DWN = 1001
  5                     CONNECT BY   PRIOR ITEM_SPEC_ID_DWN =  ITEM_SPEC_ID_UP AND
  6                                                             ITEM_SPEC_ID_DWN <>  ITEM_SPEC_ID_UP
  7                     ORDER BY ITEM_SPEC_ID_DWN DESC;

ITEM_SPEC_ID_DWN
----------------
            1008
            1001

I find this error occurs only when using connect by clause.

SQL> SELECT DISTINCT  ASAP.SPEC_REL.ITEM_SPEC_ID_DWN
  2                     FROM ASAP.SPEC_REL;

ITEM_SPEC_ID_DWN
----------------
            1000
            1001
            1002
            1003
            1004
            1005

Also this issue occurs only in test database but works fine in development database;
--in development database

SQL> SELECT DISTINCT  ASAP.SPEC_REL.ITEM_SPEC_ID_DWN
  2                     FROM ASAP.SPEC_REL
  3                     WHERE LEVEL >= 0
  4                     START WITH ASAP.SPEC_REL.ITEM_SPEC_ID_DWN = 1001
  5                     CONNECT BY   PRIOR ASAP.SPEC_REL.ITEM_SPEC_ID_DWN =  ASAP.SPEC_REL.ITEM_SPEC_ID_UP AND
  6                                                             ASAP.SPEC_REL.ITEM_SPEC_ID_DWN <>  ASAP.SPEC_REL.ITEM_SPEC_ID_UP
  7                     ORDER BY ASAP.SPEC_REL.ITEM_SPEC_ID_DWN DESC;

ITEM_SPEC_ID_DWN
----------------
            1001

Please give me the solution or cause for this situation.

This post has been answered by user12017730 on May 23 2016
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 20 2016
Added on May 20 2016
15 comments
2,446 views