Hurriyet

30 Aralık 2013 Pazartesi

Oracle Veritabanı: SQL*PLUS'taki En Genel Set Komutları - SQL*PLUS'ta Formatlama- Most General SQL*PLUS Set Commands - SQL*PLUS Formatting

Sqlplus'ta zaman zaman kullanmamız gereken bazı komutlar aşağıdadır. Bunlar sayesinde makinamızda otomatik iş tanımlayıp, sürekli kontrol sağlayıp kendimize mail attırabiliriz ve bunları düzenli bir şekilde attırtabiliriz.

   
   
 SET ECHO   ON   
 -- ECHO = ON sorguyu gösterir ve spool dosyalarına yazılır.  
 -- ECHO = OFF ile sorgu gösterilir ama spool dosyalarına yazılmaz..  
   
 SET TRIMOUT  ON   
 -- TRIMOUT = ON çıktıdan boşlukları çıkartır.  
   
 SET TRIMSPOOL ON   
 -- TRIMSPOOL = ON spool dosyasındaki boşlukları çıkartır.  
   
 SET HEADING  OFF   
 -- HEADING = OFF kolon adlarını çıktıdan çıkartır.  
   
 SET FEEDBACK OFF   
 -- FEEDBACK = ON ile çıktı sayısı hesaplanır.  
   
 SET PAUSE   OFF   
 -- PAUSE = ON ile komutlar işlendikten sonra "return" tuşuna basılması gerekir.  
   
 SET PAGESIZE 0    
 -- PAGESIZE = 0 ile bütün başlıklar ve sayfa aralıkları bastırılır.  
   
 SET LINESIZE 80   
 -- LINESIZE = sayfa genişiği genelde 80 dir.  
   
 SET VERIFY  OFF   
 -- VERIFY = ON verify ile değişkenlerin değeri sorgu öncesi ve sonrasında gösterilir.  
   
 --Spool etmek demek sql sorgularının çıktılarının bir dosyaya yazılması demektir.   
 --abc.log çıktılarımızı yazacağımız dosyadır.   
 --Bütün sorgularımız bittikten sonra da "spool off" ile dosyamızı kapatırız.  
 SPOOL abc.log  
   
 SELECT * FROM dual;  
   
 SPOOL OFF  

Burada da yukarıdaki komutlarımızın örneklerini göstermeye çalışacağız. SQL script'imiz Oracle EBS'te(Oracle Applications'da) en son profil değerlerinin ne zaman değiştiğini gösteren bir SQL'dir

 sqlplus -s apps/apps <= SYSDATE  
  AND o.profile_option_name = t.profile_option_name  
  AND level_id = 10001  
  AND t.language='TR'  
  AND v.last_update_date>sysdate-30  
  AND t.LANGUAGE IN (SELECT language_code  
  FROM fnd_languages  
  WHERE installed_flag = 'B'  
  UNION  
  SELECT nls_language  
  FROM fnd_languages  
  WHERE installed_flag = 'B')  
  ORDER BY user_profile_option_name;  
   
   
 PROMPT "Bitti"  
 exit;  
   
 EOF  

Not: Script bir bash shell script'ine gömülmüştür.


Linesize Örnek:

Linesize sonuçların ekranda ne  kadar genişlikte gösterileceğini ortaya koyar.

Linesize bu örnekte 10 iken diğer örneğimizde 100'dür.
 USER_PROFI  
 ----------  
 ICX:Oturum  
 MO: Faaliy  
 POS: Müker  
 Uygulama Y  
 XXIS: GRC  
 İş Yönetim  

USER_PROFILE_OPTION_NAME  
 ----------------------------------------------------------------------------------------------------  
 ICX:Oturum Kesildi  
 MO: Faaliyet Birimi  
 POS: Mükerrer Vergi Mükellefi No'suna Sahip Tedarikçilere İzin Ver  
 Uygulama Yazılımları SSO Otomatik Bağlantı Kullanıcısı  
 XXIS: GRC Custom PLL  
 İş Yönetim Sistemi SSO - OID Kimlik Ekleme Olayını Etkinleştir 

Column Örneği: 

Column kolon_ismi format a10; şeklinde bir örnek yaparsak eğer script'imizde çalışacak olan sorgumuzun kolonu ekranda 10 birim büyüklüğünde gösterilir.

Script'imize bu 2 örneği de eklediğimiz zaman:

 column profile_option_value format a10;  
 column user_profile_option_name format a10;

Çıktımız  bu şekilde oluşmaktadır:

 USER_PROFI PROFILE_OP CREATION_ LAST_UPDA Created By  
 ---------- ---------- --------- --------- ----------------------------------------------------------  
 ICX:Oturum 30     30-OCT-04 11-MAR-14 AUTOINSTALL  
 MO: Faaliy 81     21-MAR-14 21-MAR-14 KURULUM  
 POS: Müker Y     26-FEB-14 26-FEB-14 KURULUM  
 Uygulama Y Y     19-MAR-14 19-MAR-14 SYSADMIN  
 XXIS: GRC 0     16-NOV-13 10-MAR-14 KURULUM  
 İş Yönetim Y     29-AUG-05 19-MAR-14 ORACLE12.0.0  

Yani sütunumuzun çıktıları maksimum 10 satır olmaktadır.



Hiç yorum yok:

Yorum Gönder