Database & Oracle Reports 10g - passing large param lists

  • From: "Murching, Bob" <bob_murching@xxxxxxxxx>
  • To: "'Oracle-L Freelists'" <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 29 Nov 2005 16:45:19 -0500

This may be more of an application architecture or design question, and it's
certainly an Reports 10g question; I'll just toss it out and you be the
judge :)

The environment: J2EE application, session management, etc.  10g back-end.
User can pull up a list with potentially thousands or tens of thousands of
records, paginated of course.  They can arbitrarily flag or unflag records
on this list at will, either one at a time with checkboxes, or by applying a
variety of filters.  The list of "flagged" records is maintained at the
session level in the middle tier.  The user clicks a button and Reports 10g
is invoked to generate a mongo PDF for only those records which are flagged.
The flags needn't be stored in the back-end, there is no need to persist
them.  At least, that's the idea.

The problem: at the session level, user might end up flagging tens of
thousands of records.  How can I pass this to Reports so that it knows which
records to include in its report?  It can't be a URL parameter, of course.
One solution is to have the middle tier dump a list of these flagged records
into the database (a temp table, perhaps), where Reports 10g can get at 'em.
Unfortunately then I'm incurring some overhead on the back-end *and* I'm
faced with potentially millions of records of DML per day just for using the
database as a temporary scratchpad.

Is there a way to stream or send a large result set from J2EE to Reports 10g
directly without using the RDBMS as an intermediary?  Minimally we're
talking about tens of thousands IDs, each potentially 15 characters long.

Bob

Other related posts: