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: sql with bind variable in stored procedure doesnt use stored

Re: sql with bind variable in stored procedure doesnt use stored

From: Shaleen Garg <shgarg_orafaq_at_hotmail.com>
Date: Thu, 12 Dec 2002 14:28:42 -0800
Message-ID: <F001.00518EDB.20021212142842@fatcity.com>


John,

Thanks for the input. As far as I can see that sql's are exactly same in my example. Morover none of the initialization parameters have been changed. Need input from all Gurus

Thanks
Shaleen
----- Original Message -----
To: "Multiple recipients of list ORACLE-L" <ORACLE-L_at_fatcity.com> Sent: Thursday, December 12, 2002 12:14 PM

> Shaleen,
>
> I have not been able to dig deeper (yet) into this. However the following
> _may_ be why this is not working: I believe that the stored outline is
> matched with an about-to-be-executed SQL using the Hash value of the SQL.
> The hash value is computed by some mumbo-jumbo based on the actual SQL
> string - thus even a single extra space in the to-be-executed SQL will not
> pick up the previously stored Outline since the hash value will be
> different. Also, the hash value may depend on the shared_pool_size and
> shared_pool_reserved_sizes and any changes will require Outline to be
> generated again... (Gurus may want to add to this)
>
> John Kanagaraj
> Oracle Applications DBA
> DBSoft Inc
> (W): 408-970-7002
>
> So WHO is the Reason for the Season?! Write me for details!
>
> ** The opinions and statements above are entirely my own and not those of
my
> employer or clients **
>
>
> -----Original Message-----
> Sent: Wednesday, December 11, 2002 9:29 PM
> To: Multiple recipients of list ORACLE-L
> outlines
>
>
> I tried this even without bind variable and could not make it work from a
> stored procedure. ANy help over here will be very appreciated
> Folllowing is the testcase.
>
> Thanks
> Shaleen
>
> create table emp (num number,sal number);
> insert into emp values(1,1);
>
> create or replace procedure t as
> total number:=0;
> cursor c1 is select sal from emp;
> begin
> for i in c1 loop
> total:=total+i.sal;
> dbms_output.put_line('total salary is $'||total);
> end loop;
> end;
> /
>
> exec outln_pkg.drop_by_cat('DEFAULT');
> create outline on select sal from emp;
> select used from dba_outlines;
> alter session set QUERY_REWRITE_ENABLED=true;
> alter session set STAR_TRANSFORMATION_ENABLED=true;
> alter session set use_stored_outlines=true;
> exec t;
> select used from dba_outlines;
> select sal from emp;
> select used from dba_outlines;
> ----- Original Message -----
>
> To: orACLE-L_at_fatcity.com <mailto:orACLE-L_at_fatcity.com>
> Sent: Wednesday, December 11, 2002 2:08 PM
> outlines
>
> All,
>
> I am unable to make stored outlines work for sql statements with bind
> variable in stored procedures. Please see following sample code and tell
me
> what am I doing wrong.
>
> Thanks in Advance
>
> create table emp (num number,sal number);
> insert into emp values(1,1);
>
> create or replace procedure t(num_i number) as
> total number;
> cursor c1(p1 number) is select sal from emp where num=p1;
> begin
> for i in c1(num_i) loop
> total:=total+i.sal;
> dbms_output.put_line('total salary is $'||total);
> end loop;
> end;
> /
>
> alter session set sql_trace=true;
> exec t(1);
> alter session set sql_trace=false;
>
> create outline on select sal from emp where num=:b1;
> select used from dba_outlines;
>
> alter session set QUERY_REWRITE_ENABLED=true;
> alter session set STAR_TRANSFORMATION_ENABLED=true;
> alter session set use_stored_outlines=true;
> exec t(2);
> select used from dba_outlines;
>
> variable b1 number;
> exec :b1:=1;
> select sal from emp where num=:b1;
> select used from dba_outlines;
>
> Thanks
> Shaleen
>
> --
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> --
> Author: John Kanagaraj
> INET: john.kanagaraj_at_hds.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).
>

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Shaleen Garg
  INET: shgarg_orafaq_at_hotmail.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 Thu Dec 12 2002 - 16:28:42 CST

Original text of this message

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