Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: For i (Select..)

RE: For i (Select..)

From: Jack C. Applewhite <japplewhite_at_inetprofit.com>
Date: Mon, 01 Oct 2001 15:41:54 -0700
Message-ID: <F001.0039E21E.20011001160122@fatcity.com>

If you only use a cursor in this manner, the only place that the cursor can be used is in the particular For Loop in which it is defined - it can't be shared by other procedures or functions.

If you design and create packaged public cursors, they can be reused from other stored procedures and/or client side programs.

Code reuse is just one advantage. When table structures change - as they invariably do - you have only a few cursors to change, instead of a bazillion Cursor For Loops. Also, you can more easily tune a few public cursors.

I'd also recommend passing in Table%RowType arguments to your public cursors and specifying that they return Table%RowType records. That further isolates your code from table changes.

Jack



Jack C. Applewhite
Database Administrator/Developer
OCP Oracle8 DBA
iNetProfit, Inc.
Austin, Texas
www.iNetProfit.com
japplewhite_at_inetprofit.com
(512)327-9068

-----Original Message-----
Zsolt
Sent: Monday, October 01, 2001 6:15 PM
To: Multiple recipients of list ORACLE-L

Hi,

If this code is a cursor then why doesn't everybody use it this way?

For me it seems a lot simplier and easier than declaring a cursor in a "normal" way.

At 14:50 2001.10.01. -0800, you wrote:
>the code IS a cursor
>
>
>--- Csillag Zsolt <starsoft_at_interware.hu> wrote:
> >
> >
> > Hi,
> >
> >
> > I've read in Tom Kyte's book the following technique:
> >
> >
> > For i in (Select statement ) Loop
> >
> > Process records here
> >
> > End Loop ;
> >
> > I have tried it and it works great.
> >
> > The question is that what is the difference betwen a cursor and the
> > code above?
> > Which is more efficient?
> >
> >

Zsolt Csillag
Hungary

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jack C. Applewhite
  INET: japplewhite_at_inetprofit.com

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Mon Oct 01 2001 - 17:41:54 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US