Results 1 to 4 of 4

Thread: Ora-29908

  1. #1
    Join Date
    Jun 2002
    Posts
    2

    Unanswered: Ora-29908

    Hi,

    I am trying to do a text lookup which includes
    some other joins as per:

    select score(1), enUSA.guid, enUSA.tuid, enUSA.crc, frFRA.text, enUSA.text as text_src,
    whereused.sysno, whereused.grpno, whereused.sectno, whereused.outline from enUSA, frFRA, whereused
    where
    contains(enUSA.text, '$Automatic, $transmission, $fluid, $change' , 1) > 0 and
    enUSA.guid = whereused.guid and
    enUSA.guid = frFRA.guid and
    enUSA.tuid = frFRA.tuid order by score(1) desc

    This causes an ORA-29908: missing primary invocation for ancillary operator.

    If I add a 'kludge' condition such as:

    "and enUSA.guid >= '%' "

    it works, but seems far from efficient.

    Could some one tell me what is wrong with theoriginal statement?

    Thanks in advance,

    AZ

  2. #2
    Join Date
    Jan 2003
    Posts
    1

    Re: Ora-29908

    Hi,

    I am getting the same error message
    ORA-29908: missing primary invocation for ancillary operator

    does anyone have a solution to this?

    Cheers
    Pravin.

    Originally posted by azydron
    Hi,

    I am trying to do a text lookup which includes
    some other joins as per:

    select score(1), enUSA.guid, enUSA.tuid, enUSA.crc, frFRA.text, enUSA.text as text_src,
    whereused.sysno, whereused.grpno, whereused.sectno, whereused.outline from enUSA, frFRA, whereused
    where
    contains(enUSA.text, '$Automatic, $transmission, $fluid, $change' , 1) > 0 and
    enUSA.guid = whereused.guid and
    enUSA.guid = frFRA.guid and
    enUSA.tuid = frFRA.tuid order by score(1) desc

    This causes an ORA-29908: missing primary invocation for ancillary operator.

    If I add a 'kludge' condition such as:

    "and enUSA.guid >= '%' "

    it works, but seems far from efficient.

    Could some one tell me what is wrong with theoriginal statement?

    Thanks in advance,

    AZ

  3. #3
    Join Date
    Jun 2002
    Posts
    2

    Re: Ora-29908

    Originally posted by pningoo
    Hi,

    I am getting the same error message
    ORA-29908: missing primary invocation for ancillary operator

    does anyone have a solution to this?

    Cheers
    Pravin.
    Hi Pravin,

    Oracle's SQL is not very clever when including text queries. The answer is to sub-query the text search part of the SQL statement as in:

    select score(1), enUSA.guid, enUSA.tuid, enUSA.crc, frFRA.text, enUSA.text as text_src,
    whereused.sysno, whereused.grpno, whereused.sectno, whereused.outline from enUSA, frFRA, whereused,

    (contains(enUSA.text, '$Automatic, $transmission, $fluid, $change' , 1) > 0 order by score(1) desc) qtext where

    enUSA.guid = qtext .guid and
    enUSA.guid = qtext .guid and
    enUSA.tuid = qtext .tuid

    This works and performs much better

    Regards,

    AZ

  4. #4
    Join Date
    Jan 2003
    Location
    Kolkata, India
    Posts
    4

    Angry

    Just add the primary invocation with the same label as the ancillary operator.
    This will work

Posting Permissions

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