RE: Bind variables, library cache and SQL sharing
- From: "Bobak, Mark" <Mark.Bobak@xxxxxxxxxxxxxxx>
- To: <ramick@xxxxxxxxxxx>, <oracle-l@xxxxxxxxxxxxx>
- Date: Mon, 24 Apr 2006 21:43:35 -0400
PL/SQL pipelined function, in 9i and up. Before 9i, it's a bit more
complicated.
Go to http://www.asktom.oracle.com/ and do a search on "variable in
list". Lots of hits, lots of examples.
-Mark
--
Mark J. Bobak
Senior Oracle Architect
ProQuest Information & Learning
For a successful technology, reality must take precedence over public
relations, for Nature cannot be fooled. --Richard P. Feynman, 1918-1988
-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of ramick
Sent: Monday, April 24, 2006 9:37 PM
To: oracle-l@xxxxxxxxxxxxx
Subject: Bind variables, library cache and SQL sharing
Oracle 9205 RAC server, PHP4 client.
One of my developers posed a very good question that I don't have an
answer
for:
Is there any way to do dynamic query binding?
Let's say we have a variable list of things that we want for an in-list;
we end up with:
SELECT blah FROM blah WHERE blah in (:BV0); SELECT blah FROM blah WHERE
blah in (:BV0, :BV1); SELECT blah FROM blah WHERE blah in (:BV0, :BV1,
:BV2); SELECT blah FROM blah WHERE blah in (:BV0, :BV1, :BV2, :BV3); ...
SELECT blah FROM blah WHERE blah in (:BV0, ..., :BV499);
These won't be shared as they are different; we end up with 500 cursors
in the library cache.
Is there anything like:
do_query_bind(
"SELECT blah FROM blah WHERE blah in :BINDLIST",
array('BINDLIST' => $biglistofmanythings));
The bindlist array could be a dynamic table in PL/SQL, but what in PHP?
--
http://www.freelists.org/webpage/oracle-l
--
http://www.freelists.org/webpage/oracle-l
Other related posts: