DBAsupport.com Forums - Powered by vBulletin
Results 1 to 2 of 2

Thread: Ora-02311

  1. #1
    Join Date
    Jan 2006
    Posts
    12

    Ora-02311

    Hi there,

    I have created a simple function that returns an SDO_GEOMETRY object
    based on x,y and SRID, as seen below:


    Code:
    FUNCTION Create_Point_SOR(x NUMBER, y NUMBER, srid NUMBER) RETURN 
    SDO_GEOMETRY DETERMINISTIC IS 
    New_Point SDO_GEOMETRY; 
    BEGIN 
    new_point := 
    SDO_GEOMETRY(2001,srid,SDO_POINT_TYPE(x,y,NULL),NULL,NULL); 
    RETURN New_Point; 
    END Create_Point_SOR;
    The package compiles fine, but when i try to execute the function i get
    the following error message:


    ORA-02311: cannot alter with COMPILE option a valid type with type or
    table dependents

    ALTER TYPE MDSYS.SDO_POINT_TYPE COMPILE DEBUG

    However, the function executes without any errors but then the
    procedure that calls this function falls over with the message:


    ORA-29861: domain index is marked LOADING/FAILED/UNUSABLE

    I cannot understand where the error is arising, can someone please
    advise? Note that if i remove the function all of my problems go away,
    but unfortunately my spatial column is not updated.

    Thanks

    Dan

  2. #2
    Join Date
    Jun 2005
    Location
    London, UK
    Posts
    159
    The mystery is why simply calling your functon seems to trigger an attempt to recompile an Oracle-supplied type.

    Does the type actually need recompiling? Is your package valid? Perhaps it is invalid and so calling it triggers an automatic recompilation, but I don't know why the type would be dependent on the package.

    ORA-02311: cannot alter with COMPILE option a valid type with type or table dependents
    Cause: An attempt was made to ALTER with COMPILE option a type that is valid and has type or table dependents.
    Action: No need to perform this operation.

    ORA-29861: domain index is marked LOADING/FAILED/UNUSABLE
    Cause: An attempt has been made to access a domain index that is being built or is marked failed by an unsuccessful DDL or is marked unusable by a DDL operation.
    Action: Wait if the specified index is marked LOADING Drop the specified index if it is marked FAILED Drop or rebuild the specified index if it is marked UNUSABLE.

    You don't have PLSQL_COMPILER_FLAGS set to DEBUG or something do you? I'm still not sure how it would cause this though.
    Last edited by WilliamR; 03-24-2006 at 08:12 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Click Here to Expand Forum to Full Width