28 Aralık 2010 Salı

Oracle shared server opsiyonu ve IFS

Geçenlerde, IFS ERP uzmanı olarak çalışmaya devam eden arkadaşlarımdan birisi aradı. Garip bir sorunundan bahsetti. Problem oluşan sistem özellikleri ---------------------------------------- windows 2008 server 32 bit 8 gb ram 100+ acık kullanıcı connection vs. Problem Açıklaması ---------------------------------------- Database e belirli bir sayı üstü kullanıcı bağlandığında sistem yeni connection isteklerine cevap vermiyormuş. Ta ki bazı connectionlar...
Share:

Bir tablo üzerinde kayıt varsa güncelleme yoksa ekleme yapmak

Oracle’da merge kelimesini kullanarak tek sql ile kayıt varsa güncelleme yoksa ekleme yaptırabiliriz (Upsert). Upsert Sql’imiz:  merge into tablo t  using dual s on (t.alan1=1)  when matched then    update set alan2='UPDATE'  when not matched then    insert (alan1,alan2) values (1,'INSERT'); Test ediyoruz : SQL> create table tablo (alan1 number(10),alan2 varchar2(10)); Table created SQL> select *...
Share:

Oracle’da sql ile bakiye hesaplama

Oracle’da analitik fonksiyonları kullanarak bakiye hesaplanabilmektedir. Örneğimizde bakiye test tablosu oluşturup test verilerini giriyoruz. Hesaplama sutunu için SUM grup fonksiyonunu OVER ile kullanarak satır satır çalışmasını sağlıyoruz. ORDER BY ile toplama işlemini hangi sırayla yapılmasını gerektiğini belirtiyoruz. create table bakiye_test (   id number primary key,   tarih date not null,   giren number not null,   cikan...
Share:

13 Aralık 2010 Pazartesi

Length Fonksiyonu

LENGTH (string) fonksiyonu paremetre olarak verilen string‘in karakter uzunluğunu döndürür.Parametre olarak verilen değer null ise dönen değerde null olur. string ” (boş string) ise null olarak işlem görür. Uzunluk değeri Sıfır (0) olarak dönmez. SQL> select Length('Zeki Güven') from dual; LENGTH('ZEKIGüVEN') ------------------- 10 SQL> select Length(10) from dual; LENGTH(10) ---------- 2 SQL> select Length(sysdate) from dual; LENGTH(SYSDATE) --------------- 10 SQL>...
Share:

İki tarih arası farkı Yıl, Ay, Gün olarak bulmak

İki tarih arasında geçen zamanı bulmanız, yaş hesaplamanız gerekebilir. Oracle’da iki tarih arasındaki farkı yıl, ay,gun olarak veren fonksiyon bulunmamaktadır. Ben aşağıdaki şekilde bir sql ile hallettim: SQL>SELECT DOG_TAR DOGUM_TARIHI, TRUNC( MONTHS_BETWEEN( SYSDATE, dog_tar)/12) yil, TRUNC( MOD( MONTHS_BETWEEN( SYSDATE, dog_tar),12) ) ay, TRUNC( (MONTHS_BETWEEN(SYSDATE,dog_tar)- TRUNC(MONTHS_BETWEEN( SYSDATE, dog_tar))) /0.032258064516129)...
Share:

6 Aralık 2010 Pazartesi

ORA-12549 Çözümü Mevcut!

Merhabalar, Çok sıklıkla gerçekleşmese de, kısmen büyük çaptaki veritabanların başına gelebilen bir hatadır ORA-12549 hatası. Veritabanına bağlanmak istediğiniz zaman ise şu şekilde hatalar alabilirsiniz; ORA-12549: TNS: operating system resource quota exceeded TNS-12518: TNS:listener could not hand off client connection Ve veritabanına bağlanmanız reddedilir. İlk bakışta sıradan bir Oracle hatası ya da TNS hatası gibi gözüksede aslında...
Share:

Oracle Görevleri Sonlanıyor!..

Merhaba, Oracle'da pek sık rastlanmasa da birgün başımıza gelme olasılığı yüksek ancak geldiği zaman da son derece can sıkıcı olabilen bir hatadır Oracle görevlerinin zamanla sonlanması. Örneğin 10gR2 veritabanımız var ve job_queue_process parametremiz de 50 olarak tanımlanmış. Bir takım görevler yaratıyoruz ve bu görevler rutin olarak her gece, her saat ve hatta her dakika çalışıyor. Ancak birgün bakıyorsunuz ki, tanımladığınız görevler 2 gündür...
Share:

Datafile'ların Taşınması ve Disk Alanı Problemi

Merhaba, Bugün yazacağım konu, Oracle'da bir fiziksel datafile'ı, başka bir dizin altına nasıl taşırız? Taşırken ne gibi şeylere dikkat etmek gerekiyor? Hangi datafile'ları taşırken veritabanını kapatmaya gerek var ya da yok? Yapı itibariyle genelde karşılaşılan durumlardan birisi de Oracle'ın fiziksel veri dosyaları olan datafile'ların bulunduğu mount point'lerin dolmasıdır. Bu durumda ya yeni bir mount point açılır ve yeni datafile'lar buraya...
Share:

ORA-07445 "CORE DUMP"

Merhaba, Bir Oracle hata kodu olan ORA-07445 çok fazla karşılaşılmayan bir işletim sistemi hatasıdır ve Oracle'ın alert.log dosyasında yazdırılır. Hatanın çıktısı aşağıdaki şekilde olabilir; Errors in file /opt/oracle/product/10.2.0/db_1/admin/opttest/bdump/opttest_ora_28677.trc: ORA-07445: exception encountered: core dump [$cold_evacpy()+1328] [SIGILL] [Register NAT consumption] [0x40000000038FBC40] [] [] Bildiğimiz üzere core dump'ın sağındaki...
Share:

ORA-3136

Merhaba, ORA-03136 hatasına alert.log dosyasında başlıktaki gibi görebilirsiniz. WARNING: inbound connection timed out (ORA-3136) Bu hatanın alınmasındaki sebep, veritabanına bağlanmak isteyen bir kullanıcının kendisine tanımlanmış olan sürede, firewall, bağlantı problemleri gibi sebeplerden ötürü bağlanamamış olması. Çözüm için listener'da bir parametreyi değiştmemiz ve bir dosya içerisine parametre eklememiz gerekebilir. vals1:/home/oracle#lsnrctl...
Share:

ORA-00600 Hatası

Bir 600 hatası aldığınız zaman ilk ve mutlaka yapmanız gereken çözüm, metalink'i kontrol etmektir. Üzerinizdeki baskı gittikçe artacağı için google'a hiç bulaşmamanızı tavsiye ederim. Sıradan bir hata olmadığı için google size cevap veremeyecektir. Dolayısıyla önce metalink, eğer çözüm bulamadıysanız mecbur ticket açacaksınız ve Oracle'dan cevap bekleyeceksiniz YA DA veritabanının yedeğinden dönmeye razı olacaksınız :) Geçtiğimiz günlerde ben de...
Share:

5 Aralık 2010 Pazar

Sql de ağaç yapısı ( CONNECT BY PRIOR )

Eğer tablomuz hiyerarşik bir veri yapısına (Örneğin Tree yapısı) sahip ise, verinizi hiyerarşisindeki sırasına göre getirmeniz mümkün. Aşağıdaki gibi bir veri yapımız oldugunu düşünelim. İsterseniz SQL ifadeleri üzerinden gidelim ve sonuçlarını inceleyelim. Yukarıdaki yapıyı Oracle’ daki bir tabloda şu şekilde tutalım. SQL 1 : SELECT name, id, parent FROM test_table Görüldüğü gibi veri yapımızı soyağacı yapımıza göre tasarladık… SQL 2 :SELECT...
Share:

3 Aralık 2010 Cuma

Oracle 10G ile Pivot Table

Oracle 11G ile PIVOT Fonksiyonu geldi. Ama ben yazımı 10G de bu işlemi SQL ile nasıl yapabileceğimizi göstericem. Veri setimiz; SELECT * FROM test_data Bizden istenilen PIVOT tablo; IL değerlerine ait GRUP değerleri bazında ADET değerlerinin toplamları Sorgumuz; SELECT il, SUM(DECODE(grup,10,adet)) grup_10, SUM(DECODE(grup,20,adet)) grup_20, SUM(DECODE(grup,30,adet)) grup_30, SUM(DECODE(grup,40,adet)) grup_40 FROM test_data GROUP BY il ORDER...
Share:

Oracle 'da Dinamik Sql Kodu Çalıştırma

Test tablomuzu oluşturalim; CREATE TABLE test_table (kolon VARCHAR2 (100)); Sonra bu tablomuza bir kayıt girelim. Bunu basit bir SQL ifadesi ile değil de PL/SQL blokları içinde biraz parametrik yapmayı deneytelim; DECLARE v_sql VARCHAR2 (1000); v_test_table VARCHAR2 (30) := ‘test_table’; v_test_value VARCHAR2 (100) := ‘test value’; BEGIN v_sql := ‘INSERT INTO ‘ || v_test_table || ‘ values (:value)’; EXECUTE IMMEDIATE v_sql USING v_test_va...
Share:

Oracle Hata Kodları

Oracle ile ilgilenen herkes mutlaka bir hata ile karşılaşmıştır. Bu hata kodları bazen çok manalı olmayabiliyor, bu sebeple karşılaştığım bir link hoşuma gitti. İlgili hata kodunu yazarak hata kodunu/mesajını daha anlamlı hale getirmek isterseniz denemeye değer; http://www.ora-error.c...
Share: