Re: CTXSYS (Oracle Text) - PLS-00201 problems invoking procedure

From: stef <stef99R_at_hotmail.com>
Date: 15 Apr 2003 01:48:25 -0700
Message-ID: <5e7a0b07.0304150048.68b74bb2_at_posting.google.com>


Frank <fvanbortel_at_netscape.net> wrote in message news:<3E9AFDCE.8030102_at_netscape.net>...
> stef wrote:
> > stef99R_at_hotmail.com (stef) wrote in message news:<5e7a0b07.0304110052.59af84ef_at_posting.google.com>...
> >
> >>Frank <fvanbortel_at_netscape.net> wrote in message news:<3E947232.4010102_at_netscape.net>...
> >>
> >>>stef wrote:
> >>>
> >>>>begin
> >>>> ctx_dll.sync_index('IDX_FULLTEXT','2M');
> >>>>end;
> >>>>
> >>>>
> >>>>PLS-00201: Identifier 'CTXSYS.CTX_DLL' must be declared...
> >>>>
> >>>>I am trying to execute a procedure residing under schema CTXSYS from
> >>>>under schema X. I granted a role (CTXAPP) to user X that grants the
> >>>>execute privilege for multiple objects under CTXSYS.
> >>>>In an Oracle manual I found that this behaviour (error PLS-00201) is
> >>>>normal and that the grant execute should be given explicitly to user
> >>>>X. So, I did do this. Besides that I gave X DBA rights (EXECUTE
> >>>>ANY). But still, I receive the same error.
> >>>>
> >>>>Any ideas ?
> >>>>
> >>>>tx
> >>>
> >>>Your executing user does not know ctx_dll. Try ctxapp.ctx_dll, or
> >>>create a synonym (either private, or public) for ctxapp.ctx_dll
> >>
> >>Dank u Frank,
> >>
> >>Using a public synonym works. I still ask myself if it is not
> >>possible to call the procedure directly. I tried
> >>"ctxsys.ctx_dll.sync_index(...);" but it resulted in PLS-00201. I
> >>suppose the syntax is wrong ? Can anyone provide the correct syntax
> >>or tell me where to look for it ?
> >
> >
> >
> > As it seems during database installation Oracle creates a whole bunch
> > of synonyms. Those for Oracle Text all point to package body objects.
> > I suppose it would work if they would point to the package objects
> > (as it works after I created the synonym for the package object). Is
> > this intended or is this a mistake from Oracle ?
>
> ?!?
> create package xxxx
> ...
> end;
> /
> create package body xxxx
>
> It's still xxxx, spec or body, no difference.
> Can you explain? What synonym did you have, pointing where,
> and what is it pointing to now (in a working situation)?

  1. I created a database (Rel 9.2.0.1.0) (type data warehouse) from scratch via Database Config Assistent. CTXSYS is an out of the box schema, ready for use after installation of a database. Under Oracle Enterprise Manager there is a distinction between Packages and Package Bodies. The PACKAGE BODY of CTX_DLL is wrapped. The PACKAGE contains the readable definitions of the procedures. Under the Public schema there are lot of out of the box synonyms. There is a synonym named ctx_dll pointing to schema CTXSYS, Object CTX_DLL, Object Type PACKAGE BODY. Trying to call the procedure as mentioned in my first message doesn't work at this time. After removing this synonym and creating a new one, equal to the old but this time pointing to the object type PACKAGE, calling the procedure works ?!
  2. It works using the synonym but not if I use ctxsys.ctx_dll.sync_index ?!
Received on Tue Apr 15 2003 - 10:48:25 CEST

Original text of this message