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

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 ...

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...

Sözlerde Vurğunun Yerini Necə Tapmaq Olar?

Azərbaycan dilindəki her hansı sözdə vurğunun yerini tapmaq üçün sözü hecalara ayırmadan nisbətən qüvvətli demək lazımdır. Çünki vurğulu heca tələffüz zamanı özünü asanlıqla biruzə verir. Onu da bilmək lazımdır ki, hecalara ayrılarkən sözdəki bütün hecalar eyni tonda tələffüz olunur. Vurğunu asand tapmaq üçün sözü sərbəst şəkildə tələffüz edib, hecaları nisbətən qüvvətli demək lazımdır. Tələffüz zamanı vurğu ilə bərabər sözün düzgün tələffüzü üst-üstə düşərsə bu heca vurğulu hecadır. Bu açıqlamalardan sonra qısaca sözlərdə vurğunu yerini nece tapmaq olar sualının cavablaya bilmək üçün vurğunun məntiqini başa düşmək lazımdır. Vurğu sözdə bir hecanın digər hecalara görə daha qüvvətli deyilməsinə deyilir. Onda vurğunun yerini düzgün tapmaq üçün sırayla sözdeki bütün hecalar digərlərinə nisbətən daha qüvvətli tələffüz olunur. Eger bu qüvvətli tələffüzlərdən biri bu sözün normal tələffüzü ilə örtüşərsə, onda bu heca vurğulu hecadır. Qeyd edek ki, sözlərdə vurğu '  işarəsi ilə göstər...