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.
Basit bir örnek vermek gerekir ise:

Test için örnek data:

Örnek Kod ( script aşağıda)

        SELECT 1 as ID,
               NULL sutun1,
               NULL sutun2,
               NULL sutun3,
               NULL sutun4,
               'veri5' sutun5,
               'veri6' sutun6
          FROM dual

coalesce örnek kod

SELECT id,
       NVL(NVL(NVL(NVL(NVL(sutun1,sutun2),sutun3),sutun4),sutun5),sutun6)  AS NVL_YONTEMI,
       COALESCE(sutun1,sutun2,sutun3,sutun4,sutun5,sutun6)  AS COALESCE_YONTEMI
  FROM (
        SELECT 1 as ID,
NULL sutun1,
NULL sutun2,
NULL sutun3,
NULL sutun4,
'veri5' sutun5,
'veri6' sutun6
FROM dual
)

Coalesce içine N adet parametre alabilir.
Özellikle 3 ve yukarı değişken kontrole edecekseniz, NVL, DECODE, CASE WHEN vs yerine bunu kullanın. Aksi halde bi noktadan sonra kodun okunurluğu azalıyor.
Girdiğiniz parametrelerin veri tipi aynı olması gerekiyor veya implict dönüşüm yapabilyor olması gerekir.

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

yukarıdaki sorgu ile hr.EMPLOYEES tablosunun verileri birebir aynı şekilde ornek_tablo ismi ile yeni bir tablo oluşturulur.

ctas

ctas

 

Oluşturulan yeni tabloya tekrar select atılırsa, birebir aynı sonucu ürettiği görülür.

ctas

ctas

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 ?

flash yüklü herhangi bir tarayıcınıza
https://db_server_ip_veya_hostname:port/em
örneğin
https://192.168.40.130:5500/em
veya
https://oracledb12c:5500/em
server’ın olduğu makina üzerindeyseniz. (server üzerindeki tarayıcıda flash yüklü olmayabilir)
https://localhost:5500/em

bağlanamazsanız veya portu bilmiyorsanız veya portu değiştirmek istiyorsanız komut satırına;

kurulum yapan kullanıcının oturumu ile açmışsa
sqlplus / AS SYSDBA

herhangi bir kullanıcı ile oturum açılmışsa. alttaki gibi giriş yaparız.
sqlplus sys/sysninsifresi as sysdba

SQL> select dbms_xdb_config.gethttpsport() from dual;
sonuç:
DBMS_XDB_CONFIG.GETHTTPSPORT()
------------------------------
5500

… sonucu gelecektir. Buradaki 5500 değeri oracle default kurulumu ile gelen standart portumuz.
https://localhost:5500/em

EM Express

EM Express

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