Well "Best Practices" features in that article Best practices can also be defined as the most efficient (least amount of > effort) and effective (best results) way of accomplishing a task, based on > repeatable procedures that have proven themselves over time for large > numbers of people. Although exiting a loop is a singular task so probably deserves the singular noun. On Thu, Feb 10, 2011 at 3:59 PM, Howard Latham <howard.latham@xxxxxxxxx>wrote: > Just a little thing - sorry its irritating me The Expression is Best > Practice not Best Practices. > > http://en.wikipedia.org/wiki/Best_practice > > > > > On 9 February 2011 21:45, Michael Moore <michaeljmoore@xxxxxxxxx> wrote: > >> I can think of many ways to do this but is there a definitive best >> practice? >> I'm sure there must be articles on this somewhere, so links as well as >> comments are appreciated. >> >> BEGIN >> for cur1 in (SELECT bla bla bla) >> LOOP >> >> If something_I_dont_like then skip to next record in cur1; >> >> Lots and lots of code goes here. >> >> END LOOP; >> END; >> >> Some options: >> 1) You could set up a label and use a goto. >> 2) You could set up an inner block and use RAISE to break out: >> >> 3) You could do something like : >> >> BEGIN >> for cur1 in (SELECT bla bla bla) >> LOOP >> <<process_this_record>> >> FOR c2 IN (SELECT * FROM DUAL) -- creates an exitable one-time >> loop >> LOOP >> >> If something then >> exit process_this_record; >> >> Lots and lots of code goes here. >> >> END LOOP process_this_record; >> END LOOP; >> END; >> >> 4) You could just nest IF statements like: >> >> BEGIN >> for cur1 in (SELECT bla bla bla) >> LOOP >> IF keep_processing_this_transaction THEN >> BEGIN >> Lots and lots of code goes here. >> END IF; >> END LOOP; >> END; >> >> So, what is the best way? >> >> Regards, >> Mike >> > > > > -- > Howard A. Latham > > Sent from my Nokia N97 > > -- Niall Litchfield Oracle DBA http://www.orawin.info