Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Different behavior of Too_many_rows exception in pl/sql betwe
if you are looking for one row only, then A and C will do. Since C involves a little bit of more coding and A does the same thing, A would be a better choice. But if you are coding to trap too many rows, then you should check for exceptions, all depends on your requirement.
rgds
amar
-----Original Message-----
From: Norrell, Brian [mailto:BNorrell_at_QuadraMed.com]
Sent: Friday, June 22, 2001 12:36 AM
To: Multiple recipients of list ORACLE-L
Subject: RE: Different behavior of Too_many_rows exception in pl/sql
betwe
I have seen code that depends on the 8.1 behavior. It does bring up a question I have always wondered about. The question for the internals ubergeeks is: which of the following is best to use? (All should have the same result, so which one has the best performance and why?)
A)
declare
y number;
begin
select x into y from z where rownum = 1;
foo(y);
end;
B)
declare
y number;
begin
begin
select x into y from z;
when too_many_rows then null;
C)
declare
y number;
cursor c is
select x into y from z;
begin
open c;
fetch c into y;
close c;
foo(y);
end;
D) something else more clever or obscure ???
Brian Norrell
Manager, MPI Development
QuadraMed
511 E John Carpenter Frwy, Su 500
Irving, TX 75062
(972) 831-6600
-----Original Message-----
[mailto:Prasada.Gunda1_at_hartfordlife.com]
Sent: Thursday, June 21, 2001 2:34 PM
To: Multiple recipients of list ORACLE-L
v7&v8i
We noticed a different behavior with too_many_rows exception in v7 and v8i. Is this a bug or that's the way it should work in 8i?
I really appreciate your feedback on this.
Thanks & Regards,
Prasad
declare
v_table_name user_tables.table_name%TYPE;
begin
v_table_name := null;
select table_name into v_table_name from user_tables;
In v7.3, It keeps value remains null in v_table_name column and v8i it is
assigning the first received value.
In both cases, It is raising too_many_rows exception.
Output in v7.3:
too_many_rows exception, v_table_name : null
PL/SQL procedure successfully completed.
Output in v8.1.7, v8.1.6, v8.1.5
too_many_rows exception, v_table_name : CHAMPION_LIFE_DGNSS_CATEGORY
PL/SQL procedure successfully completed.
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author:Received on Fri Jun 22 2001 - 03:31:43 CDT
INET: Prasada.Gunda1_at_hartfordlife.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). -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Norrell, Brian
INET: BNorrell_at_QuadraMed.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).