Dbms_Output Paketi Ve Ekrana Deger Bastırma

Dbms_Output Paketi Ve Ekrana Deger Bastırma

Dbms_output paketi oracleda ekrana değer bastırmaya yarar ve değişkenlerin değerlerini görmemizi sağlar.Bu paketin source’u {ORACLE_HOME}/rdbms/admin/dbmsotpt.sql dizininde bulunuyor. sqlplus, toad, plsql developer gibi toollarda bu paketi kullanabiliriz.Toad ve plsql developer üzerinde zaten bulunuyor ve bir checkbox yardımıyla aktif ve pasif edilebiliyor ama sqlplusda maalesef açmak, kapamak,
buffer size vermek için komutlar yazmamız gerekli.

– DBMS_OUTPUT enable etmek.
SET SERVEROUTPUT ON;
ya da
exec dbms_output.enable;

– DBMS_OUTPUT disable etmek.
SET SERVEROUTPUT OFF;
ya da
exec dbms_output.disable;

– Buffer size set etmek (1-1.000.000 arası)
exec dbms_output.enable(1000000);

– Yeni satır açmak, boş bir satır bırakır.
dbms_output.new_line();

– dbms_output ile ekrana değer bastırmak
dbms_output.put_line();

DBMS_OUTPUT Paketi kullanımı ile ilgili örnekler:

1- Sistem tarihini dbms_output.put_line ile ekrana bastıralım.

SQL> BEGIN
2 dbms_output.put_line(to_char(SYSDATE,'DD-MM-YYYY HH24:MI:SS'));
3 END;
4 /
27-11-2015 15:46:57
 
PL/SQL procedure successfully completed.

2- Kullanıcı tablo sayısını dbms_output.put_line ile ekrana bastıralım.

SQL> set serveroutput on;
SQL> BEGIN
2 FOR REC_ IN (SELECT K.OWNER, COUNT(1) SAY
3 FROM ALL_TABLES K
4 GROUP BY K.OWNER
5 ORDER BY 1) LOOP
6 DBMS_OUTPUT.PUT_LINE(REC_.OWNER || ' in tablo sayisi = ' || REC_.SAY);
7 END LOOP;
8 END;
9 /
 
APEX_030200 in tablo sayisi = 360
APPQOSSYS in tablo sayisi = 4
CTXSYS in tablo sayisi = 50
DBSNMP in tablo sayisi = 25
EXFSYS in tablo sayisi = 47
MDSYS in tablo sayisi = 129
OLAPSYS in tablo sayisi = 126
ORDDATA in tablo sayisi = 73
ORDSYS in tablo sayisi = 5
OUTLN in tablo sayisi = 3
SYS in tablo sayisi = 1013
SYSMAN in tablo sayisi = 728
SYSTEM in tablo sayisi = 169
 
PL/SQL procedure successfully completed.

3-) Döngü değerini dbms_output.put_line ile ekrana bastıralım.

SQL> set serveroutput on;
SQL> declare
1 dummy number;
2 begin
3 for i in 1..10 loop
4 dbms_output.put_line('i nin degeri='||i);
5 end loop;
6 end;
7 /
 
i nin degeri=1
i nin degeri=2
i nin degeri=3
i nin degeri=4
i nin degeri=5
i nin degeri=6
i nin degeri=7
i nin degeri=8
i nin degeri=9
i nin degeri=10
 
PL/SQL procedure successfully completed.

Umarım faydalı olur..

Tagged: , , , , , ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir