Garip Hata : ORA-14702: The partition number is invalid or out-of-range

İş yerinde dakika bazlı veri tutan Interval Partition özellikli tablo oluşturup, exchange yapmak istediğimde ORA-14702: The partition number is invalid or out-of-range hatası ile karşılaştım. Internette bu hata için maalesef detaylı bir bilgi bulunmuyor. Özellikle out-of-range konusundaki range nedir sorusunun cevabı yok. Benimle aynı sorunu yaşıyan olabilir diye burada yaşadığım sorunu ve çözümü paylaşmak istiyorum. Eğer INTERVAL PARTITION tipiniz MINUTE ise, 2 partition arasındaki değer 3 yıl’dan fazla olamaz 🙂

Continue reading

Birebir Çoklama – ORA-02437 ORA-02299 Validation Hatası

Veri Ambarı (DWH) işlerinde çoklama sorunu ile çok sık karşılaşmaktayız. Farklı farklı çoklama şekilleri olsa da ben en sık karşılaşılan örneklerden birini paylaşacağım. Veri Ambarı’nda çoklama olmaması için Primary Key (PK) veya Unique Constraint kullanılır. Hatta tabloya çok fazla data insert edileceği zaman, constraint’ler yavaşlığa sebep olmaması için öncesinde disable edilir veya drop edilir. İnsert veya exchange partition işlemi gerçekleştirildikten sonra, PK veya Unique Constraint valide edilir. Eğer çoklama varsa ve tablodaki PK valide edilmek istenir ise kod “ORA-02437: cannot validate (C##USER2.C_PK) – primary key violated” hatasını alacaktır. Eğer çoklama varsa ve tablodaki Unique Constraint valide edilmek istenirse kod “ORA-02299: cannot validate (C##USER2.C_U) – duplicate keys found” hatasını alacaktır. Çözüm, çoklamayı silip, validasyon adımını yapmaktır.

Continue reading

COALESCE NE İŞE YARAR? ORACLE ( Kod Okunurluğunu Arttırmak )

Oracle’ın Built-in fonksiyonu olan Coalesce maalesef çok fazla bilinmiyor. En basit tarif ile “Değer NULL ise yanındaki sağındaki değere bak” söyliyebilirim. Bu fonksiyonu iç içe geçmiş NVL,DECODE yerine kullanılabilir. Bu fonksiyon bilinmediği zaman okunması zor olan kodlar ortaya çıkıyor.

SELECT COALESCE(null,null,’dolu’,null,’dolu2′,null) FROM dual;

Dönen değer: “dolu” olacaktır.

Continue reading

FOR LOOP PL SQL ORACLE FOR DÖNGÜ

Bir çok programlama dilinde olduğu gibi Oracle’ın PL SQL dilinde de for döngüsü (loop) bulunmaktadır. Örnek for kullanımı:

12’den başlayarak 22 ye kadar tüm değerleri döndüren örnek PL SQL kodu aşağıdaki gibidir:

DECLARE
       deger number;
BEGIN
  FOR deger in 10 .. 22 
  LOOP       
       dbms_output.put_line('değer: ' || deger);
  END LOOP;
END;

dbms_output.put_line() fonksiyonu ile deger isimli değişkenin değeri output ekranına yazılmaktadır.

pl sql for loop oracle

pl sql for loop

Belirli rakam aralığında for döngüsü yukarıdaki gibi yapılmıştır.

CTAS NEDİR? Create Table AS

CTAS Nedir ? CTAS nasıl kullanılır?

CTAS ; Create Table AS yapısının kısaltılmış halidir. Kolay yoldan tablo oluşturmaya yarar. Genelde tablonun yedeğini almak için veya create script’inin kolayca oluşturulması için kullanılır.

CTAS yöntemi ile tablo oluşturulduğunda, partition, index, grant gibi objeler oluşmaz.

Örnek kullanım :

CREATE TABLE ornek_tablo AS
SELECT * FROM hr.EMPLOYEES;

Continue reading

EM Express 12c (Oracle Enterprise Manager Yeni Yüzü)

Oracle Database yönetiminin GUI (kullanıcı arayüzü) Oracle Enterprise Manager, Oracle Database’in 12c sürümü ile birlikte yerini EM Express’e bıraktı. Temel mantığı aynı olsa da arayüzde ve fonksiyonalitede ciddi değişiklikler bulunmakta.

EM Express nasıl başlatılır ? database başladığında (startup;), EM Express’de otomatik olarak başlayacaktır. “emctl start dbconsole” “bash: emctl: command not found” hatasını verecektir.

EM Express’e Nasıl Bağlanırız ?

Continue reading

ORACLE DATABASE 12C (12.1.0.1.0) ÖRNEK KULLANICI (EXAMPLE SCHEMA) – HR SCHEMA

Oracle database (veritabanı) kurulduktan sonra test amaçlı sorgular yazmamızı kolaylaştıran bir grup örnek schema/user ve buna bağlı tablolar (içinde kayıtlar mevcut), index, trigger, view, procedure v.s. bulunur. Bunlara erişmek için izlemeniz gereken yolu anlatacağım.

Öncelikle veritabanınızla aynı versiyondaki examples dosyasını buraya tıklayarak indirmelisiniz
Açılan sayfada “Accept License Agreement” kısmını işaretlemelisiniz.

Hangi versiyonu ve işletim sistemini kurduysanız ona göre sağ tarafında yer alan “See All” a tıklayınız. Ben oracle linux üzerine oracle database 12c kurduğum için ekranda “Oracle Database 12c Release 1” altındaki “Linux x86-64″‘ü seçiyorum.
Continue reading

ORACLE LINUX RELEASE 6 UPDATE 5 (6.5.0) – KURULUMU (INSTALLATION)

İnternette çok fazla türkçe kaynak olmaması sebebi ile Oracle Linux kurulumunu elimden geldiğinde screenshot (ekran görüntüsü) ekleyerek anlatmaya çalıştım. Kurulumu Vmware Workstation 10.0.1 üzerinde yapacağım. Kurulum yaparken konfigürasyonumu (configuration), kurulum bittikten sonra Oracle Database kuracağım şekilde yapacağım. (Onun nasıl kurulduğunu da başka bir başlıkta anlatacağım.). Oracle Linux’un son versiyonunu buraya tıklayarak adresten indirebilirsiniz. Ben alttaki resimden en son versiyonu olan “Oracle Linux 6 Update 5 (6.5.0) Media Pack for x86_64 bit” seçtim. Siz de kendi kurulumunuzda en son versiyon neyse onu indirebilirsiniz.

Biraz uzun bir anlatım oldu ama herhangi bir sıkıntı yaşamamanız için tüm ekran çıktılarını eklemek istedim. Herkese kolay gelsin.
Continue reading