Ana içeriğe atla

Oracle BIN_TO_NUM Fonksiyonu Kullanımı (İkili Sayıyı Onluk Sayı Sistemine Dönüştürme)

Oracle PL/SQL içinde genel programlama dillerinde yer olan ve PL/SQL'e has bir çok özellik fonksiyonlar altında bir araya toplanmıştır. Bu fonksiyonlardan biri de ikili sayı sistemindeki bir sayıyı(bit dizisini) onluk sayıya dönüştüren fonksiyon olan BIN_TO_NUM fonksiyonudur.
Oracle BIN_TO_NUM
BIN_TO_NUM fonksiyonu parametre olarak bir ve sıfırlardan oluşan bir diziyi alır ve sonuç olarak bir sayı döndürür. Fonksiyonun genel kullanımı aşağıdaki gibidir.

BIN_TO_NUM( expr1, expr2, ... expr_n)

Fonksiyon içindeki expr1, expr2, ... expr_n 1 ve 0'dan oluşan sayı dizisini ifade eder ve virgülle ayrılır.

Fonksiyonun genel tanıtımından sonra örneklere geçebiliriz.

SELECT 
BIN_TO_NUM(1,1,1,1)
FROM DUAL;
Sonuç:15

SELECT 
BIN_TO_NUM(1,0,1,0,1,1,1,0)
FROM DUAL;
Sonuç: 174

Parametre olarak girilen değer içinde 1 ve 0 dışında sayı girilirse
SELECT 
BIN_TO_NUM(1,0,1,1,1,0,1,3)
FROM DUAL;
Sonuç olarak aşağıdaki hata ile karşılaşırız:
ORA-01428: bağımsız değişken '3' aralık dışı
01428. 00000 - "argument '%s' is out of range"

Fonksiyonunun sınırlarını test etmek için aşağıdaki sorguyu çalıştırdığda
SELECT 
BIN_TO_NUM(1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,0,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0)
FROM DUAL;
Sonuç olarak aşağıdaki hata ile karşılaşırız:
ORA-01426: sayısal taşma
01426. 00000 - "numeric overflow"

Yaklaşık olarak 10 senedir Oracle sorguları yazmama rağmen açıkçası hiç bu fonksiyona ihtiyacım olduğunu hatırlamıyorum. Ama Oracle içinde yer alan bir dönüştürme fonksiyonu olduğu için bu makalede örneklere konuyu anlatma çalıştım. 

BIN_TO_NUM fonksiyonu aşağıdaki Oracle sürümlerinde yer almaktadır. 
-Oracle 12c,
-Oracle 11g,
-Oracle 10g,
-Oracle 9i

Son olarak konuyu özetleyecek olursak, Oracle BIN_TO_NUM fonksiyonu parametre olarak girilen 1 ve 0'lardan oluşan sayı dizisini ondalık sayı sistemindeki karşılığını sonuç olarak döndüren dönüştürme fonksiyonudur.

Oracle PL/SQL içinde yer alan tüm dönüştürme fonksiyonlarının listesine buradan erişebilirsiniz.

Oracle PL/SQL bünyesinde yer alan tüm fonksiyonlara ve açıklamalarına ise buradan erişebilirsiniz..

Yorumlar

Bu blogdaki popüler yayınlar

Medyan (Ortanca) Nedir? Nasıl Hesaplanır? Nerelerde Kullanılır?

Medyan işlemi olasılık hesaplamalarında sıkça kullanılan bir sayı dizisinin ortalamasını hesaplamak için alternatif yöntemlerden bir tanesidir. Ortanca medyan işleminin diğer adıdır. Matematiksel olarak medyan işlemi bir sayı dizisi küçükten büyüğe sıralayarak ortada kalan elemanı medyan değeri olarak belirleme işlemidir. Örnek verecek olursak: 2, 1, 5, 4, 5, 1, 2, 3, 5 serisi sıralanırsa 1, 1, 2, 2, 3, 4, 5, 5, 5 serisi elde edilir. Bu seri 9 elemanlı olduğundan ortadaki, yani 5. eleman (medyan) olacaktır. 5. eleman 3 sayısıdır. Yani ortanca değeri 3'dür Eleman sayısı tek sayı olan bir seride medyan değerin sırasının hesaplaması şu şekilde formüle edilir. Medyanın Sırası = (Eleman Sayısı + 1) / 2 Bu formülü yukarıdaki örneği uygulayacak olursak; Medyanın Sırası = (9 + 1) / 2 = 5 Veri serisi eleman sayısı bir çift sayı ise bu durumda serinin 2 medyanı olacaktır. Örneğin 2, 1, 5, 4, 5, 1, 2, 3, 5, 4 serisi sıralandığında 1, 1, 2, 2, 3, 4, 4, 5, 5, 5 s

Ağaçlar Kireçle veya Badana İle Neden Boyanır?

Ağaçlar kireçle boyanmasının veya badana yapılmasının hem çevreye hem de doğaya, ağaçlara faydası var. Bu makalede bu geleneği enine boyuna tartışmaya çalıştık. Ağaca zarar veren mikrop ve bakterileri öldürür. Ağacı çok aşarı soğuk havalarda ve çok aşırı sıcak havalarda korur. Ağacın çürümesini ve kurtlanmasını önler. Ağacın gövdesinin alabileceği zararları en az düzeyde düşürmeyi sağlar. Hoş, güzel, hijyenik, temiz pırıl pırıl bir görüntü oluşturur. Ayrıca çok sıcak havalarda da ağacı yanmaya karşı korumak. En büyük etkisi soğuk havalarda ağacı don vurmalarına karşı korumak . Küresel ısınma göz önüne alındığında mevsim değişiklikleri ani don, ani ısı artışları ve azalışları sonucunun doğuracağı etkenler için yararlı etkin bir yöntem. Gövdeden obur dalların çıkmasını azaltmak için sürülür. Kireçleme ağaçları güneş yanığından korumak için yapılıyor. Ağaçlar da güneşten yanabiliyorlar. Bu arada odun dokudaki gözenekleri doldurarak kapattığı için, zararlıların yuv

Azərbaycan Dilində Vurğu Qəbul Etmeyen Şekilçiler

Sözlərdə hecalardan birinin digərlərinə nisbətən daha qüvvətli deyilməsinə heca vurğusu deyilir. Üzərinə vurğu düşən hecaya isə vurğulu heca deyilir. Azərbaycan dilində vurğu adətən söz sonuna düşür. Söz şəkilçi qəbul ederkən vurğu adətən şəkilçinin üzərinə keçir. Məsələn: çiç ə k - çiçəkl ə r - çiçəklərd ə n məkt ə b - məktəbl i - məktəblil ə r - məktəblilərd ə n Buna baxmayaraq dilimizdə bir sıra şəkilçilər var ki onlar vurğu qebul etmirlər. Bu məqalədə Azərbaycan dilində vurğu qebul etməyən şəkilçilər incələnəcək ve bu şekilçilərin hansı hallarda vurğu qebul edib hansı hallarda vurğu qebul etmediyi araşdırılacaqdır. Eyni zamanda bildirmək istəyirəm ki vurğu ilə bağlı daha geniş və ətraflı məlumat üçün Azərbaycan Dilində Vurğunun Praktik Məsələləri adlı məqaləyə də nəzər yetirə bilərsiniz.  1. İsimlərdəki şəxs(xəbərlik) şəkilçiləri Məsələn: müəli'məm müəli'msən müəli'mdir müəli'mik müəli'msiniz müəli'mdirlər Qeyd: -dır4