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: Bulk collect got truncated?

Re: Bulk collect got truncated?

From: Stephane Faroult <sfaroult_at_oriole.com>
Date: Tue, 20 May 2003 11:41:36 -0800
Message-ID: <F001.0059E2D0.20030520114136@fatcity.com>


"Gorbounov,Vadim" wrote:
>
> Hi all,
>
> Is there any "best practice" regarding practical limits on PL/SQL tables?
> We've got an issue here which may potentially invalidate data, no error
> messages.
>
> Here is the case:
>
> Oracle9i Enterprise Edition Release 9.0.1.4.0, Solaris.
>
> DECLARE
> TYPE t_subsvcparmid IS TABLE OF sub_svc_parm.sub_svc_parm_id%TYPE;
> esubsvcparmid t_subsvcparmid;
> BEGIN
> SELECT /*+ index(sub_svc_parm, sub_svc_parm_ix2) */
> sub_svc_parm_id
> BULK COLLECT INTO esubsvcparmid
> FROM sub_svc_parm
> WHERE parm_id = 10;
>
> DBMS_OUTPUT.PUT_LINE(esubsvcparmid.LAST);
> ..................................
>
> The select is expected to return close to 200K records, and usually it does,
> but sometimes number of records is restricted to 65535 = 2^16-1, it can be
> seen both from DBMS_OUTPUT and 10046 trace:
>
> FETCH
> #2:c=4370000,e=33876545,p=14895,cr=66960,cu=0,mis=0,r=65535,dep=1,og=4,tim=1
> 052942377932150
>
> ^^^^^^^
> Did anybody see such weird behavior?
>
> TIA
>
> Vadim Gorbounov
>
> Liberate Tech.
>

Vadim,

   I have never heard of this, but it only half surprises me - what surprises me most is that you have seen it work. It's a well known fact with Oracle that array fetches, probably because indices are unsigned short integers, have such a limit. PL/SQL tables are just arrays in disguise.
I must say that I wouldn't think of using them for such a big number of rows. I am far from being a proponent of temporary tables, but that may be the case for using them.  

-- 
Regards,

Stephane Faroult
Oriole Software
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Stephane Faroult
  INET: sfaroult_at_oriole.com

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
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 Tue May 20 2003 - 14:41:36 CDT

Original text of this message

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