2 Replies Latest reply: Mar 16, 2011 6:57 AM by Ananthram RSS

    special case :ORA-04043: object OWNER.OBJECT_NAME does not exist error.

    715498
      When I am running this query:
      select OWNER,OBJECT_NAME from dba_objects where OBJECT_NAME like '%DBCont%';
      Output:
      OWNER OBJECT_NAME
      ------------------------------ --------------------------------------------------------------------------------------------------------------------------------
      REPO2 WEBM2111254219370497
      REPO2 WEBM31170943931472
      REPO2 WEBM91183727189816
      REPO2 WEBM91238484534562
      REPO2 WmRDBContainer

      When I am doing :
      SQL> desc REPO2.WmRDBContainer
      ERROR:
      ORA-04043: object REPO2.WmRDBContainer does not exist

      But other's i:e desc OWNER.OBJECT_NAME ; works fine

      Please help with reason why desc REPO2.WmRDBContainer is not returning results ?
        • 1. Re: special case :ORA-04043: object OWNER.OBJECT_NAME does not exist error.
          715498
          Hi all,

          This error is reported because the table name(object) contains mixed character is a combination of capital and smaill letters so we can include the double quotes while querying for desc tyhe query should run like this : desc owner."objectname";
          • 2. Re: special case :ORA-04043: object OWNER.OBJECT_NAME does not exist error.
            Ananthram
            I know this is an old post but I replied just to leave the post a bit more clearer

            The objects that you have mentioned above might not be a table and if it is a package then the user trying to describe it must have "execute" privilege in order to access / describe the object

            Here is a small example::

            C:\>sqlplus "sys as sysdba"

            SQL*Plus: Release 9.2.0.1.0 - Production on Wed Mar 16 17:16:40 2011

            Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

            Enter password:

            Connected to:
            Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
            With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options
            JServer Release 9.2.0.1.0 - Production

            sys@BATMAN> col object_name for a20
            sys@BATMAN> select object_name, object_type, owner from dba_objects where lower(object_name) like '%redefinition%';

            OBJECT_NAME OBJECT_TYPE OWNER
            -------------------- ------------------ ------------------------------
            DBMS_REDEFINITION PACKAGE SYS
            DBMS_REDEFINITION PACKAGE BODY SYS
            DBMS_REDEFINITION SYNONYM PUBLIC

            Now I connect as an user who do not have the privilege to access this package
            sys@BATMAN> @conn user1/<password>
            user1@BATMAN> desc sys.dbms_redefinition
            ERROR:
            ORA-04043: object sys.dbms_redefinition does not exist


            user1@BATMAN>

            Now let us connect as sys and grant the execute access on the above package to user1

            user1@BATMAN> @conn "sys as sysdba"
            Enter password:
            sys@BATMAN> grant execute on dbms_redefinition to user1;

            Grant succeeded.

            sys@BATMAN>

            Reconnect as the user and try to describe the same package

            @conn user1/<password>
            user1@BATMAN>desc sys.dbms_redefinition
            PROCEDURE ABORT_REDEF_TABLE
            Argument Name Type In/Out Default?
            ------------------------------ ----------------------- ------ --------
            UNAME VARCHAR2 IN
            ORIG_TABLE VARCHAR2 IN
            INT_TABLE VARCHAR2 IN
            PROCEDURE CAN_REDEF_TABLE
            Argument Name Type In/Out Default?
            ------------------------------ ----------------------- ------ --------
            UNAME VARCHAR2 IN
            TNAME VARCHAR2 IN
            OPTIONS_FLAG BINARY_INTEGER IN DEFAULT
            PROCEDURE FINISH_REDEF_TABLE
            Argument Name Type In/Out Default?
            ------------------------------ ----------------------- ------ --------
            UNAME VARCHAR2 IN
            ORIG_TABLE VARCHAR2 IN
            INT_TABLE VARCHAR2 IN
            PROCEDURE START_REDEF_TABLE
            Argument Name Type In/Out Default?
            ------------------------------ ----------------------- ------ --------
            UNAME VARCHAR2 IN
            ORIG_TABLE VARCHAR2 IN
            INT_TABLE VARCHAR2 IN
            COL_MAPPING VARCHAR2 IN DEFAULT
            OPTIONS_FLAG BINARY_INTEGER IN DEFAULT
            PROCEDURE SYNC_INTERIM_TABLE
            Argument Name Type In/Out Default?
            ------------------------------ ----------------------- ------ --------
            UNAME VARCHAR2 IN
            ORIG_TABLE VARCHAR2 IN
            INT_TABLE VARCHAR2 IN

            user1@BATMAN>

            So that says it all I guess!!

            Cheers!