🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.databases.oracle.server
Article #28

Re: How to aggregate PL/SQL records into a Result Set?

#28
From: Igor Izvekov
Date: Tue, 09 Jul 2002 21:01
45 lines
3336 bytes
ramon@conexus.net (Ramon F Herrera) wrote in message news:<c9bc36ff.0207081836.29106794@posting.google.com>...
> "AV" <avek_nospam@videotron.ca> wrote in message news:<457W8.6770$Qt6.589048@wagner.videotron.net>...
> > Most probably it will be somewhat slower,
> > but here is a plan:
> > -- create buffer table.
> > -- create PL/SQL procedure that
> > ---- clean buffer table
> > ---- populate table from any number of selects
> > -- from java code
> > -- call pl/sql procedure
> > -- call simplest select from buffer table
> > 
> 
> Alex:
> 
> Right after I posted my question, I also came up with
> exactly the same solution that you suggest (hey, great minds
> think alike ;-) ).
> 
> My PL/SQL script uses a table called 'tempGUI' which is populated
> one record at a time, and its contents are removed after being sent
> to the client (actually, the deleting the old table is the very
> first thing done).  The obvious problem is name collision.
> What if two clients access the stored procedure at the same time?
> Is there any way to have a private table (visible by only one
> instance of the stored procedure)?  Or even better, is there some
> sort of RAM-based table?
> 
> BTW: I intend to implement the PIPELINED approach as soon as I have
> Oracle 9i up and running, but for now I am using the approach
> that you suggested.  Again, I am worried about simultaneous access.
> 
> Thanks,
> 
> -Ramon

You may want to look at global temporary tables. They can be accessed
by the same name by many sessions, yet data there will be private to
each session. After session completes, data is gone. Using PL/SQL
tables (similair to an array)is also a possibility. You can create a
function which will populate such a table with results of some query
and then return this table. With a little trick you can even select
from this function.

    Hth, Igor Izvekov.
Technical Details
Message-ID: <9f17469e.0207091301.7fb8bf23@posting.google.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!postnews1.google.com!not-for-mail
References: <c9bc36ff.0207071227.141865fc@posting.google.com> <agaa3m0ahj@drn.newsguy.com> <457W8.6770$Qt6.589048@wagner.videotron.net> <c9bc36ff.0207081836.29106794@posting.google.com>

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fa4f9,7c58a4418eab2433
X-Google-Attributes: gidfa4f9,public
X-Google-Thread: 10a146,7c58a4418eab2433
X-Google-Attributes: gid10a146,public
X-Google-Thread: 107d46,7c58a4418eab2433
X-Google-Attributes: gid107d46,public
X-Google-Thread: f99a8,7c58a4418eab2433
X-Google-Attributes: gidf99a8,public
X-Google-Thread: 1073da,7c58a4418eab2433
X-Google-Attributes: gid1073da,public
X-Google-ArrivalTime: 2002-07-09 14:01:18 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!postnews1.google.com!not-for-mail
From: igoriz@cmtk.net (Igor Izvekov)
Newsgroups: comp.databases.oracle.server,comp.databases.oracle.misc,borland.public.jbuilder.database,comp.lang.java.databases,comp.lang.java.programmer
Subject: Re: How to aggregate PL/SQL records into a Result Set?
Date: 9 Jul 2002 14:01:17 -0700
Organization: http://groups.google.com/
Lines: 45
Message-ID: <9f17469e.0207091301.7fb8bf23@posting.google.com>
References: <c9bc36ff.0207071227.141865fc@posting.google.com> <agaa3m0ahj@drn.newsguy.com> <457W8.6770$Qt6.589048@wagner.videotron.net> <c9bc36ff.0207081836.29106794@posting.google.com>
NNTP-Posting-Host: 12.20.116.199
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: posting.google.com 1026248478 23987 127.0.0.1 (9 Jul 2002 21:01:18 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: 9 Jul 2002 21:01:18 GMT