Re: Ref cursor in stored proc
From: DA Morgan <damorgan_at_psoug.org>
Date: Fri, 17 Oct 2008 19:36:30 -0700
Message-ID: <1224297385.351134@bubbleator.drizzle.com>
>>>>> Tim Mickelson wrote:
>>>>> I'm not aware of any way to do it I will be thrilled if someone knows
>>>>> how to do it with a weakly typed ref cursor.
>>>>> But be advised "NAME" is a reserved word and should not be used for
>>>>> objects, columns, or variables.
>>>>> SELECT keyword
>>>>> FROM gv$reserved_words
>>>>> WHERE keyword LIKE 'NAM%';
>>>>> --
>>>>> Daniel A. Morgan
>>>>> Oracle Ace Director & Instructor
>>>>> University of Washington
>>>>> damor..._at_x.washington.edu (replace x with u to respond)
>>>>> Puget Sound Oracle Users Groupwww.psoug.org-Hide quoted text -
>>>>> - Show quoted text -
Date: Fri, 17 Oct 2008 19:36:30 -0700
Message-ID: <1224297385.351134@bubbleator.drizzle.com>
Palooka wrote:
> Mark D Powell wrote: >> On Oct 16, 12:53 am, DA Morgan <damor..._at_psoug.org> wrote: >>> Mark D Powell wrote: >>>> On Oct 14, 9:31 am, DA Morgan <damor..._at_psoug.org> wrote:
>>>>> Tim Mickelson wrote:
>>>>>> Hello >>>>>> If I call a function from a stored procedure and the function >>>>>> returns >>>>>> a ref cursor. The only info I have and want is that this ref >>>>>> cursor has >>>>>> a field, "NAME", but I know nothing of all other fields, how do I >>>>>> fetch >>>>>> this field name? >>>>>> E.g. this does not work since the ref cursor has many values, not >>>>>> just >>>>>> NAME. >>>>>> FUNCTION TESTFUNCTION(input_var IN VARCHAR2) RETURN VARCHAR2 IS >>>>>> TYPE RecType IS RECORD(nome IMPRESA_PARIX.NAME%TYPE); >>>>>> Cursore IMP_REFCUR; >>>>>> rec RecType; >>>>>> BEGIN >>>>>> -- Call function that returns IMP_REFCUR (ref cursor) >>>>>> Cursore := SEARCH_PARAMETRICA('MKM S.R.L.'); >>>>>> LOOP >>>>>> FETCH Cursore INTO rec; >>>>>> DBMS_OUTPUT.PUT_LINE(rec.NAME); >>>>>> EXIT WHEN Cursore%NOTFOUND; >>>>>> END LOOP; >>>>>> RETURN NULL; >>>>>> END TESTFUNCTION;
>>>>> I'm not aware of any way to do it I will be thrilled if someone knows
>>>>> how to do it with a weakly typed ref cursor.
>>>>> But be advised "NAME" is a reserved word and should not be used for
>>>>> objects, columns, or variables.
>>>>> SELECT keyword
>>>>> FROM gv$reserved_words
>>>>> WHERE keyword LIKE 'NAM%';
>>>>> --
>>>>> Daniel A. Morgan
>>>>> Oracle Ace Director & Instructor
>>>>> University of Washington
>>>>> damor..._at_x.washington.edu (replace x with u to respond)
>>>>> Puget Sound Oracle Users Groupwww.psoug.org-Hide quoted text -
>>>>> - Show quoted text -
>>>> Just a note that I would suggest using the v$reserved_words version >>>> over the gv$ versions since on RAC the gv$ version of the query will >>>> run against all instances. I find when looking at v$ information that >>>> I usually only want to look at the current instance data rather than >>>> the data for all instances. >>> Your point is well made though I would hope no one is doing development >>> against on a production cluster. >>> >>> I tend to use gv$ by default these days because far too often >>> it is the opposite situation where people are looking at v$parameter >>> or v$session and not seeing what they need to see. >>> -- >>> Daniel A. Morgan >>> Oracle Ace Director & Instructor >>> University of Washington >>> damor..._at_x.washington.edu (replace x with u to respond) >>> Puget Sound Oracle Users Groupwww.psoug.org- Hide quoted text - >>> >>> - Show quoted text - >> >>>> I would hope no one is doing development against on a production >>>> cluster. >> << >> >> Daniel, Still an optimist. We generally do not have any development >> being performed against prodcution though when I see the same package >> updated two or three days in a row in production I sometimes wonder. >> >> However, I have seen too many posts where from the information posted >> it appears this is unfortunately not true. >> > I don't understand where he gets his inference that anything is being > done against a production cluster. Why does he assume that it not a test > cluster? > > Palooka
I don't think Mark is making that inference. Just pointing out that one must understand the implications of using v$ and gv$. A point that bears repeating given that most people don't even know the gv$ objects exist.
-- Daniel A. Morgan Oracle Ace Director & Instructor University of Washington damorgan_at_x.washington.edu (replace x with u to respond) Puget Sound Oracle Users Group www.psoug.orgReceived on Fri Oct 17 2008 - 21:36:30 CDT