Monday, June 8, 2009

DATABASE BAĞLI KULLANICILARIN ÇALIŞTIRDIĞI SORGULAR

Database bağlı olan kullanıcıların çalıştığı sorguları listeler. Bu işi yapan birçok araç(tool) piyasada mevcud. Fakat gün gelir nevran döner sqlplus dan erişmeniz gerekirse aşağıda sorgu bi nebze size yardimci olacaktir. Burada v$session , v$sqltext_with_newlines tablolarının diğer columnlarını kullanarak güzel raporlar oluşturulabilinir.

SELECT /*+ ORDERED */
SUBSTR (RPAD (s.sql_text, 64), 1, 64) sqltxt
FROM v$session v, v$sqltext_with_newlines s
WHERE v.osuser = ' aliates '
AND s.address = v.sql_address
AND s.hash_value = v.sql_hash_value
ORDER BY piece

Piyadasaki araçalrdan en güzel örnek TOAD verilebilir. Zaten geliştirme (development) yapılan ortam genelde burası olduğu için bunu kullanabilirsiniz. Session Browser seçeğini secerseniz oradan güzel bir session incelemesi yapabilirsiniz.

Database - > Monitor - > Session Browser

Ayrıca hangi user ile bağlı olduğunu bulmak için

select sys_context('USERENV','OS_USER')
from dual;

birde

select osuser from v$session; bunu kullanabilirsiniz. Seçim size kalmış.Oracle büyüklerine sormak lazım dualden mi çekmeli yosa V$sessiondan mı hangisi daha mantıklı diye?

sorgusunu kullanabilirsiniz. bunun ile ilgili kucuk bir fonk yazalım. Bunu yazıdığımız paketlerde osuser kontrolu için kullanabiliriz.

CREATE OR REPLACE FUNCTION os_user_ogrenme
RETURN VARCHAR2
IS
os_user_degiskeni VARCHAR2 (30);
BEGIN
SELECT SYS_CONTEXT ('USERENV', 'OS_USER')
INTO os_user_degiskeni
FROM DUAL;

RETURN os_user_degiskeni;
END;
/

çağırmak için

DECLARE
os_user_degiskeni VARCHAR2 (30);
BEGIN
os_user_degiskeni := os_user_ogrenme ();
DBMS_OUTPUT.put_line ('baglı oldugum isletim sistemi ' ||os_user_degiskeni||'');
END;

bagli oldugum isletim sistemi aates

No comments: