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: Different behavior of Too_many_rows exception in pl/sql betwe

RE: Different behavior of Too_many_rows exception in pl/sql betwe

From: Norrell, Brian <BNorrell_at_QuadraMed.com>
Date: Fri, 22 Jun 2001 08:45:58 -0700
Message-ID: <F001.00333A28.20010622072156@fatcity.com>

Where is the fun in that? To quote a previous coworker "Any clod can have facts, but having an opinion is an art". Besides, you missed the two key words of the question: "and why?" I was hoping to spark a nice extended discussion on the inner workings of Oracle that everyone could enjoy while remaining on topic.

Also, my current project sadly has SQLServer as a back end, so I have limited access to real procedural database code (Transact-SQL is a beast). This makes obtaining empirical evidence problematic. I mainly lurk on the list to keep somewhat up to date in case I ever have to go back to the land of scalability and multiple platforms.

Brian Norrell
Manager, MPI Development
QuadraMed
511 E John Carpenter Frwy, Su 500
Irving, TX 75062
(972) 831-6600

-----Original Message-----
Sent: Thursday, June 21, 2001 4:13 PM
To: Multiple recipients of list ORACLE-L betwe

Brian:

Why don't you do what us "ubergeeks" do? Test. in a loop, try run each version, say 1000 times and tell us how long they take to run in your environment.

(I want to know, but am too lazy to do this for myself right now!)

Kevin

-----Original Message-----
Sent: Thursday, June 21, 2001 4:36 PM
To: Multiple recipients of list ORACLE-L 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;
  exception
    when too_many_rows then null;
  end;
  foo(y);
end;

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;
dbms_output.put_line('v_table_name : '||nvl(v_table_name,'null')); exception
when too_many_rows then

    dbms_output.put_line('too_many_rows exception, v_table_name : ' ||nvl(v_table_name,'null'));
when others then

    dbms_output.put_line(sqlerrm);
end;
/

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:
  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).
--

Please see the official ORACLE-L FAQ: http://www.orafaq.com
--

Author: Toepke, Kevin M
  INET: ktoepke_at_cms.cendant.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). Received on Fri Jun 22 2001 - 10:45:58 CDT

Original text of this message

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