10 Ocak 2017 Salı

Oracle: Çalışan SQL ve Session Bilgileri

Merhaba Tekrar,
Şimdi başlığı görüp de Grid varken, neden lazım diyebilirsiniz.. Ancak herkes gride giremiyor malumunuz; özellikle kurumsal firmalarda roller ayrımından ötürü girmeniz pek mümkün değil, dba olmadığınız sürece.

Sıkça kullandığım ama umarım hep keyfi bakmanız gerektirecek bir sql paylaşmak istiyorum:(executing sql, username, lockwaits..)

select sid,serial#,username,lockwait,status,schemaname,
osuser,machine,logon_time,last_call_et,event,t2.sql_text from v$session t1,v$sql t2 where t1.sql_hash_value=t2.hash_value
and t1.status='ACTIVE' and t1.username<>'SYS'
order by username asc

Bu şekilde hem sid serial, hem hangi user hangi makinadan bağlı ve ne çekiyor göürsünüz.. Ayrıca lock var mı yok mu, wait oluşmuş mu, net şekilde yazıyor..

Lockları zaten anlarsınız da, wait oluşursa şurdan kopya çekersiniz:

https://docs.oracle.com/cd/B28359_01/server.111/b28320/waitevents003.htm#BGGIBDJI

SQL: Kolon İçeriğinde Değişim

Selamlar,
Sql'de ifade içindeki minik bir kısmı değiştirme ihtiyacım oldu. Belki işi düşen olursa, hızlıca kullansın diye paylaşıyorum. Bu arada Rusya'dan bir mail aldım; bir konuda yazımdan bir şey alaşılmamış, ödev konusuymu vs. Ara Ara orijinal ifadelerini de yazımda değinmeye çalışacağım, özellikle teknik konularda.

Bir kolon içindeki ifadeyi, başka bir ifade ile değiştirme(find a text --> replace with another text, using replace() function)
degisecekIfade-->mevcuttaki degerdir(current expressin in column)
dogruIfade-->dogru, gelmesini istediginiz deger(new value/expression/text)

update tabloAdiniz
set kolonAdi=REPLACE(kolonAdi, 'degisecekIfade', 'dogruIfade')
where kriterleriniz(criterias);