Hurriyet

31 Aralık 2013 Salı

PL\SQL Örnekleri: Veritabanı Versiyonu Kontrolü Örneği - Global Parametreler

Buradaki örneğimizde değişken kullanımını inceleyeceğiz. Değişkenimizi yarattığımız scriptin üzerinde tanımlarız. Böylece genel olarak kullanabiliriz. Genelden kastımız ise bunun büyük bir kod olduğunu düşünseydik yani büyük bir paket olduğunu varsaysaydık  diğer fonksiyonlarımız içerisinde de :v_version değişkenini kullanmak için böyle bir yol uygulayabiliriz. V_version parametresinin yanındaki ":" işareti ile de parametrenin global olduğunu beliritiriz.

Aşağıdaki kodda v$instance'dan çektiğimiz versiyon değerini v_version adlı parametreye atarız. Sonra bu parametreyi uygun bir şekilde substr fonksiyonuyla ayırdıktan sonra bununla ilgili kontrol işlemlerimizi yaparız.

1.script

 variable        v_version               varchar2(17);  
 declare 
 BEGIN  
   
   select version  
   into :v_version  
   from v$instance;  
   
 :v_version := substr(:v_version,1,9);  
   
 if :v_version < '8.1.6.0.0'   
 and :v_version > '4.0' then  
 dbms_output.put_line(chr(10));  
 dbms_output.put_line('RDBMS Version = '||:v_version);  
 dbms_output.put_line('ERROR - Versiyon çok düşük');  
 dbms_output.put_line(chr(10));  
 end if;  
   
 exception  
   
  when others then  
   dbms_output.put_line(chr(10));  
   DBMS_OUTPUT.PUT_LINE('ERROR - RDBMS Versiyon hatası '|| sqlerrm);  
     
 END;  
 / 

Global özelliğini göstermek için aşağıdaki kodumuzu ya SQL*PLUS'tan ya da Toad'dan f5 tuşuna basaraktan çalıştırıp görebiliriz. Aşağıdaki kodumuzda ilk script'imizde atadığımız v_version parametremizi ikinci scriptimiz içinde de direk kullanabiliriz.

İlk script de atanan değer aynı session içerisinde 2. scriptde de kullanılabileceğini göstermek için aşağıdaki scripti çalıştırabiliriz.

2.script
 declare  
   
 BEGIN  
   
   select MAX(version)  
   into :v_version  
   from v$instance;  
   
 :v_version := substr(:v_version,1,9);  
   
 if :v_version < '8.1.6.0.0'   
 and :v_version > '4.0' then  
 dbms_output.put_line(chr(10));  
 dbms_output.put_line('RDBMS Version = '||:v_version);  
 dbms_output.put_line('ERROR - Versiyon çok düşük');  
 dbms_output.put_line(chr(10));  
 end if;  
   
 exception  
   
  when others then  
   dbms_output.put_line(chr(10));  
   DBMS_OUTPUT.PUT_LINE('ERROR - RDBMS Versiyon hatası '|| sqlerrm);  

 END;  
 /  
   
 declare  
 begin  
   
 dbms_output.put_line('RDBMS Version = '||:v_version);  
 end;  
 /  






Hiç yorum yok:

Yorum Gönder