Silinen kayıtları ayrı bir tabloda takip etmek
Bazı kritik önemdeki tablolarımızda silinen kayıtları takip etmek isteyebiliriz. Bir anlamda windowstaki çöp kutusu gibi. Bu amaçla aşağıdaki prosedürü yazdım. Bu prosedüre parametreolarak silinen kayıtları takip etmek istediğimiz tablonun adını geçiriyoruz. Prosedür önce silinen kayıtları atacağı tabloyu tablo adının sonuna “__cop” ekleyerek oluşturuyor. Ayrıca silinen kayıtların atılacağı tabloya orjinal tablo yapısından farklı olarak DELETE_USER,DELETE_PC,DELETE_DATE,DELETE_OS_USER kolonlarını ekliyor. Bu kolonlarda isimlerinden anlaşılacağı gibi, kaydı silen kullanıcı adı, silindiği pc ismi,silindiği tarih ve silinen pc nin işletim sistemi kullanıcı adları tutuluyor.
Bir tabloyla aynı yapıda yeni boş bir tablo oluşturmak
Bazen bir tabloyla aynı yapıda ama boş bir tablo oluşturmak gerekebilir. Bunun için izleyeceğimiz en kısa yol şu komutu çalıştırmaktır.
3=5 eşitliği sürekli false olarak gerçekleneceği için tablomuz hiç bir veri içermeden oluşturulmuş olacaktır. Aynı şekilde constraint ler, index ler de orjinal tablomuzdan kopyalanmayacaktır.
Sayıyı “yazıyla” yazdırma fonksiyonu
bu fonksiyon sayıları “yazıyla” denilen hale dönüştürür.
public static string[] arrOnlar = { "", "ON", "YİRMİ", "OTUZ", "KIRK", "ELLİ", "ALTMIŞ", "YETMİŞ", "SEKSEN", "DOKSAN" };
public static string[] arrYuzler = { "", "YÜZ", "İKİYÜZ", "ÜÇYÜZ", "DÖRTYÜZ", "BEŞYÜZ", "ALTIYÜZ", "YEDİYÜZ", "SEKİZYÜZ", "DOKUZYÜZ" };
public static string[] arrKatlar = { "", "BİN", "MİLYON", "MİLYAR", "TRİLYON", "KATTRİLYON", "TRİLYAR", "KATTRİLYAR" };
public static string Yaziyla(double lnSayi)
{
long lGecici = Convert.ToInt64(lnSayi); // 0..9,223,372,036,854,775,807
string strHedef = (lGecici == 0) ? ("SIFIR") : ("");
short snKatlnSayi = 0;
while (lGecici > 0)
{
strHedef = (((snKatlnSayi == 1) && (lGecici % 1000) == 1) ? ("") : (arrYuzler[(lGecici % 1000) / 100] + arrOnlar[(lGecici % 100) / 10] + arrBirler[lGecici % 10])) + arrKatlar[snKatlnSayi++] + strHedef;
lGecici = Convert.ToInt64(lGecici / 1000);
}
return strHedef;
}
Oracle Database SID değiştirme
DBNEWID kullanmadan veritabanının SID sini değiştirmenin tek yolu controfile ların yeniden oluşturulmasıdır. Şimdi varolan bir veritabanımızın (SEKER) ismini ve SID sini değiştirecez. Yeni SID VE db_name (BORDRO) olacak.
Öncelikle varitabanımızı clean shutdown dediğimiz bir metotla kapatmamız gerekiyor
MOUNT modda yeniden başlatıyoruz.
Apex admin şifresini resetlemek
Benim gibi unutkan birisi iseniz şifrelerle aranız pek iyi olmayabilir. Oracle Application Express in admin şifresini unuttuysanız çok endişenlenmeye gerek yok, apex in root klasörünün altında
scriptini çalıştırırarak apex admin şifresini resetleyebiliriz.
Oracle data dictionary view leri görmek
Oracle v$ performans view leri ( dinamik performans view) leri görmek için şu sorguları çalıştırabiliriz.
oracle data dictionary view ler için : http://ss64.com/orad/oracle
v$ performans view ler için : http://ss64.com/orav/index.html
Cold backuptan veritabanını klonlama
Production database in bir klonunu oluşturmak çoğu zaman test ve development işlemleri açısından işe yarayıcı olabilir.
Bu işlemler adım adım şu şekilde yapılır:
1.ADIM:
Production database e sqlplus üzerinden sysdba yetkisi olan bir kullanıcı ile bağlanıp şu komutu çalıştırıyoruz.
bu komut içinde database create syntaxini içeren bir dosya oluşturulur. Dosyanın oluşturulacağı yer trace file directory sidir. Bu directory i öğrenmek için user_dump_dest parametresine bakılmalıdır.

