John,

I'm in exactly the same predicament.  I'm also trying
to find some examples.  I have an older version of
Feuerstein book which does talk about using DBMS_SQL
package to bind variables.  Unfortunately it looks a
little messy.  I'm now looking at the following link:

http://gethelp.devx.com/techtips/oracle_pro/10min/10min1000.asp

which seems to provide a couple examples.  This is for
8i and above.

If I get anything to work, I'll pass along what I
have.

hth

mkb

--- Rachel Carmichael <[EMAIL PROTECTED]> wrote:
> O'Reilly and PL/SQl Programming almost ALWAYS means
> the author is
> Steven Feuerstein
> 
> 
> --- [EMAIL PROTECTED] wrote:
> > John,
> > 
> >     You would have to ask while I've got the book
> at home.  But it's
> > an Orielly
> > book on PL/SQL Programming.  Sorry off the top of
> my head I can't
> > remember the
> > author or title.
> > 
> > Dick Goulet
> > 
> > ____________________Reply
> Separator____________________
> > Author: John Dunn <[EMAIL PROTECTED]>
> > Date:       9/6/2002 7:38 AM
> > 
> > Despite the importance of using bind variables,
> the Oracle
> > documentation
> > seems to make very little reference to how to use
> them(for example
> > the
> > PL/SQL manual)
> > 
> > Can anyone point me at any decent documentation on
> the subject of
> > using bind
> > variables in PL/SQL?
> > 
> > John
> > 
> > 
> > 
> > > -----Original Message-----
> > > From: Nicoll, Iain (Calanais)
> [SMTP:[EMAIL PROTECTED]]
> > > Sent: 06 September 2002 15:23
> > > To:   Multiple recipients of list ORACLE-L
> > > Subject:      RE: Must Read for Every Developer
> and DBA 
> > > 
> > > I thought that bind variables were faster but
> you always have to
> > ensure
> > > that
> > > if you're accessing by data which may be heavily
> skewed and
> > histograms
> > > would
> > > usually help you may not want to use bind
> variables as they will
> > disable
> > > the
> > > use of histograms.
> > > 
> > > In saying that it doesn't look as though that
> would be the case
> > here.
> > > 
> > > Iain Nicoll
> > > 
> > > -----Original Message-----
> > > Sent: Friday, September 06, 2002 2:33 PM
> > > To: Multiple recipients of list ORACLE-L
> > > 
> > > 
> > > Hello Vikas,
> > > 
> > > As You said We should always make use of bind
> variables as it
> > executes
> > > faster as compare to the statements where we do
> not
> > > make use of bind variables.
> > > 
> > > Q1) Can you please take a more specific example
> as how a statement
> > can be
> > > altered to make use of bind variable.
> > > 
> > > Q2) I made use of SELECT SQL_TEXT FROM V$SQLAREA
> WHERE ROWNUM < 5
> > to get
> > > few
> > > samples for you 
> > > 
> > > These are as follows 
> > > 
> > > UPDATE   CNST_QUEUE   SET      PROCESS = -1    
> ,USER_ID ='A101675'
> > > ,DATE_QUEUED = sysdate  WHERE      AWB_PREFIX
> > >  = '125'  AND      AWB_NUMBER  = 67557405  AND  
>    AWB_SUFFIX  = '
> >  '
> > > AND
> > > PROCESS = 1 AND    USER_ID = 'A101675'
> > > 
> > > UPDATE   CNST_QUEUE   SET      PROCESS = -1    
> ,USER_ID =
> > 'A101675'
> > > ,DATE_QUEUED = sysdate  WHERE      AWB_PREFIX
> > >  = '125'  AND      AWB_NUMBER  = 68221156  AND  
>    AWB_SUFFIX  = '
> >  '
> > > AND
> > > PROCESS = 1 AND      USER_ID = 'A101675'
> > > 
> > > UPDATE   CNST_QUEUE   SET      PROCESS = -1    
> ,USER_ID ='A105722'
> > > ,DATE_QUEUED = sysdate  WHERE      AWB_PREFIX
> > >  = '125'  AND      AWB_NUMBER  = 67557405  AND  
>    AWB_SUFFIX  =
> > 'A '
> > > AND
> > > PROCESS = 1 AND      USER_ID = 'A105722'
> > > 
> > > UPDATE   CNST_QUEUE   SET      PROCESS = -1    
> ,USER_ID =
> > 'A105722'
> > > ,DATE_QUEUED = sysdate  WHERE   AWB_PREFIX =
> '125'  AND     
> > AWB_NUMBER  =
> > > 67557416  AND      AWB_SUFFIX  = '  '  AND     
> PROCESS = 1 AND
> > > USER_ID
> > > = 'A105722
> > > 
> > > How can I Introduce bind variables in these
> statements ?
> > > 
> > > I may be sending a wrong SAMPLE as I feel I
> should apply your
> > remove
> > > constant function and then send few SQL
> statements
> > > 
> > > Warm Regards,
> > > Om
> > > 
> > > In your case -- you are NOT using bind
> variables. 
> > > 
> > > Taking your update statement here:
> > > 
> > >  UPDATE   CNST_QUEUE   SET      PROCESS = -1    
> ,USER_ID =
> > 'A101675'
> > > ,DATE_QUEUED = sysdate  WHERE      AWB_PREFIX
> > >  = '125'  AND      AWB_NUMBER  = 67557405  AND  
>    AWB_SUFFIX  = '
> >  '
> > > AND
> > > PROCESS = 1 AND      USER_ID = 'A101675'
> > > 
> > > that SHOULD BE recoded in the application to
> become : 
> > > 
> > > update cnst_queue set process = :b1, user_id =
> :b2, date_queued =
> > sysdate,
> > > where awb_prefix = :b3
> > >    and awb_number = :b4
> > >    and awb_suffix = :b5
> > >    and awb_process = :b6
> > >    and user_id = :b7;
> > > 
> > > and bind in those values before you execute this
> statement. There
> > are ways
> > > in which it could be done and vary from language
> to language and
> > > environment
> > > to environment but they ALL support it.  You
> MUST do this. In this
> > > case,the
> > > first time you execute this statement you need
> to parse this
> > statement
> > > (HARD
> > > PARSING) and once the execution plan gets into
> the SHARED POOL
> > > (V$libraryCache) the other users can use this to
> great effect. They
> > would
> > > not reparse this statement again and again and
> but does do the soft
> > > parsing
> > > of it. So One Parse may lead to MANY executions
> instead of 1
> > Parsing <-> 1
> > > Execution.
> > > 
> > > At least 90% of your database execution time is
> spent PARSING and
> 
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: mkb
  INET: [EMAIL PROTECTED]

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: [EMAIL PROTECTED] (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).

Reply via email to