Thanks Michael and Lance! 

I decided to go with an Oracle Pipelined Table function and that took care of 
it. I think that's what Michael was referring to below. This enabled us to be 
able to make a simple SQL call.

Thanks again.




>________________________________
> From: Lance Norskog <goks...@gmail.com>
>To: solr-user@lucene.apache.org 
>Sent: Sunday, June 3, 2012 12:28 AM
>Subject: Re: Using Data Import Handler to invoke a stored procedure with 
>output (cursor) parameter
> 
>Right, or create a view.
>
>On Fri, Jun 1, 2012 at 8:11 PM, Michael Della Bitta
><michael.della.bi...@appinions.com> wrote:
>> Apologies for the terseness of this reply, as I'm on my mobile.
>>
>> To treat the result of a function call as a table in Oracle SQL, use the
>> table() function, like this:
>>
>> select * from table(my_stored_func())
>>
>> HTH,
>>
>> Michael
>> On Jun 1, 2012 8:01 PM, "Niran Fajemisin" <afa...@yahoo.com> wrote:
>>
>>> So I was able to run some additional tests today on this. I tried to use a
>>> stored function instead of a stored procedure. The hope was that the Stored
>>> Function would simply be a wrapper for the Store Procedure and would simply
>>> return the cursor as the return value. This unfortunately did not work.
>>>
>>> My test attempted to call the function from the query attribute of the
>>> <entity> tag as such:
>>> {call my_stored_func()}
>>>
>>> It raised an error stating that: 'my_stored_func' is not a procedure or is
>>> undefined.  This makes sense because the invocation format above is
>>> customarily reserved for a stored procedure.
>>>
>>> So then I tried the typical approach for invoking a function which would
>>> be:
>>> {call ? := my_stored_function()}
>>>
>>> And as expected this resulted in an error stating that: not all variables
>>> bound . Again, this is expected as the "?" notation would be the
>>> placeholder parameter that would be bound to the OracleTypes.CURSOR
>>> constant in a typical JDBC program.
>>>
>>> Note that this function has been tested outside of DIH and it works when
>>> properly invoked.
>>>
>>> I think the bottom-line here is that there is no proper support for stored
>>> procedures (or functions for that matter) in DIH. This is really
>>> unfortunate because anyone thinking of doing any significant processing in
>>> the source RDBMS prior to data export would have to look elsewhere. Short
>>> of adding this functionality to the JdbcDataSource class of the DIH, I
>>> think I'm at a dead end.
>>>
>>> If anyone knows of any alternatives I would greatly appreciate hearing
>>> them.
>>>
>>> Thanks for the responses as usual.
>>>
>>> Cheers.
>>>
>>>
>>>
>>>
>>> >________________________________
>>> > From: Lance Norskog <goks...@gmail.com>
>>> >To: solr-user@lucene.apache.org; Niran Fajemisin <afa...@yahoo.com>
>>> >Sent: Thursday, May 31, 2012 3:09 PM
>>> >Subject: Re: Using Data Import Handler to invoke a stored procedure with
>>> output (cursor) parameter
>>> >
>>> >Can you add a new stored procedure that uses your current one? It
>>> >would operate like the DIH expects.
>>> >
>>> >I don't remember if DB cursors are a standard part of JDBC. If they
>>> >are, it would be a great addition to the DIH if they work right.
>>> >
>>> >On Thu, May 31, 2012 at 10:44 AM, Niran Fajemisin <afa...@yahoo.com>
>>> wrote:
>>> >> Thanks for your response, Michael. Unfortunately changing the stored
>>> procedure is not really an option here.
>>> >>
>>> >> From what I'm seeing, it would appear that there's really no way of
>>> somehow instructing the Data Import Handler to get a handle on the output
>>> parameter from the stored procedure. It's a bit surprising though that no
>>> one has ran into this scenario but I suppose most people just work around
>>> it.
>>> >>
>>> >> Anyone else care to shed some more light on alternative approaches?
>>> Thanks again.
>>> >>
>>> >>
>>> >>
>>> >>>________________________________
>>> >>> From: Michael Della Bitta <michael.della.bi...@appinions.com>
>>> >>>To: solr-user@lucene.apache.org
>>> >>>Sent: Thursday, May 31, 2012 9:40 AM
>>> >>>Subject: Re: Using Data Import Handler to invoke a stored procedure
>>> with output (cursor) parameter
>>> >>>
>>> >>>I could be wrong about this, but Oracle has a table() function that I
>>> >>>believe turns the output of a function as a table. So possibly you
>>> >>>could wrap your procedure in a function that returns the cursor, or
>>> >>>convert the procedure to a function.
>>> >>>
>>> >>>Michael Della Bitta
>>> >>>
>>> >>>------------------------------------------------
>>> >>>Appinions, Inc. -- Where Influence Isn’t a Game.
>>> >>>http://www.appinions.com
>>> >>>
>>> >>>
>>> >>>On Thu, May 31, 2012 at 8:00 AM, Niran Fajemisin <afa...@yahoo.com>
>>> wrote:
>>> >>>> Hi all,
>>> >>>>
>>> >>>> I've seen a few questions asked around invoking stored procedures
>>> from within Data Import Handler but none of them seem to indicate what type
>>> of output parameters were being used.
>>> >>>>
>>> >>>> I have a stored procedure created in Oracle database that takes a
>>> couple input parameters and has an output parameter that is a reference
>>> cursor. The cursor is expected to be used as a way of iterating through the
>>> returned table rows. I'm using the following format to invoke my stored
>>> procedure in the Data Import Handler's data config XML:
>>> >>>>
>>> >>>> <entity name="entity_name" ... query="{call my_stored_proc(inParam1,
>>> inParam2)}"> ...</entity>
>>> >>>>
>>> >>>> I have tested that this query works prior to attempting to use it
>>> from within the DIH. But when I attempt to invoke this stored procedure, it
>>> naturally complains that the output parameter is not specified (essentially
>>> a mismatch in the number of parameters).
>>> >>>>
>>> >>>> I don't know of anyway to pass in a cursor parameter (or any output
>>> parameter for that matter) to the stored procedure invocation from within
>>> the <entity> definition.  I would greatly appreciate if anyone could
>>> provide any pointers or hints on how to proceed.
>>> >>>>
>>> >>>> Thanks so much for your time
>>> >>>>
>>> >>>
>>> >>>
>>> >>>
>>> >
>>> >
>>> >
>>> >--
>>> >Lance Norskog
>>> >goks...@gmail.com
>>> >
>>> >
>>> >
>
>
>
>-- 
>Lance Norskog
>goks...@gmail.com
>
>
>

Reply via email to