這個也是Tom大神寫的工具。
https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:1163635055580
下面模擬沒有綁定變量的環(huán)境,然后使用該工具查看
創(chuàng)建實驗帳號
conn / as sysdba
create user edmond identified by edmond;
grant connect,resource,dba to edmond;
create table t(x int);
insert into t select rownum from dual connect by level<=10000;
create or replace procedure p1
as
    l_cnt number;
begin
    for i in 1 .. 10000
    loop
        execute immediate 'select count(*) from t where x=' || i into l_cnt;
    end loop;
end;
/
在一個終端執(zhí)行p1過程,開啟另一個終端執(zhí)行如下腳本:
	
		- 
			create table t1as select sql_textfrom v$sqlarea;
 
		 		- 
			
		 		- 
			alter table t1add sql_text_wo_constantsvarchar2(1000);
		 		- 
			
		 		- 
			create or replace function 
		 		- 
			remove_constants( p_queryin varchar2 ) return varchar2
		 		- 
			as
		 		- 
			    l_querylong;
		 		- 
			    l_charvarchar2(1);
		 		- 
			    l_in_quotes booleandefault FALSE;
		 		- 
			begin
		 		- 
			    for iin 1.. length( p_query)
		 		- 
			    loop
		 		- 
			        l_char:= substr(p_query,i,1);
		 		- 
			        if ( l_char= '''' and l_in_quotes)
		 		- 
			        then
		 		- 
			            l_in_quotes:= FALSE;
		 		- 
			        elsif( l_char= '''' and NOT l_in_quotes)
		 		- 
			        then
		 		- 
			            l_in_quotes:= TRUE;
		 		- 
			            l_query:= l_query|| '''#';
		 		- 
			        end if;
		 		- 
			        if ( NOT l_in_quotes) then
		 		- 
			            l_query:= l_query|| l_char;
		 		- 
			        end if;
		 		- 
			    end loop;
		 		- 
			    l_query:= translate( l_query, '0123456789', '@@@@@@@@@@' );
		 		- 
			    for iin 0.. 8 loop
		 		- 
			        l_query:= replace( l_query, lpad('@',10-i,'@'), '@' );
		 		- 
			        l_query:= replace( l_query, lpad(' ',10-i,' '), ' ' );
		 		- 
			    end loop;
		 		- 
			    return upper(l_query);
		 		- 
			end;
		 		- 
			/
		 		- 
			update t1set sql_text_wo_constants= remove_constants(sql_text);
		 	
			
set linesize 200;
col sql_text_wo_constants format a100;
 
	
	
		- 
			select sql_text_wo_constants, count(*)
		 		- 
			  from t1
		 		- 
			 group by sql_text_wo_constants
		 		- 
			having count(*) > 100
		 		- 
			 order by 2
		 		- 
			/ 
		
 	
 可以看到結果如下,已經(jīng)找到了沒有綁定變量的語句。
            
                分享標題:使用remove_constants工具查看Oracle是否使用綁定變量
                
                文章位置:http://chinadenli.net/article12/jgpcgc.html
            
            
                成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、定制網(wǎng)站、網(wǎng)站排名、動態(tài)網(wǎng)站、做網(wǎng)站、品牌網(wǎng)站建設            
            
                廣告
                
            
            
                聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源:
                創(chuàng)新互聯(lián)