PLSQL Is Number Fonksiyonu

PLSQL’de Sayı Kontrolü

Bazen numerik veri kontrolü yaptırmamız gerekebilir,bu kontrolü farklı yöntemlerle yapmak mümkün.Biz regular expression’la ve to_number dönüşümüyle ayrı ayrı yapalım..

CREATE OR REPLACE FUNCTION is_number( value_ IN VARCHAR2 )
  RETURN VARCHAR2
IS
  num_ NUMBER;
BEGIN
  num_ := to_number(value_);
  RETURN 'Y';
EXCEPTION
  WHEN others THEN
    RETURN 'N';
END is_number;

Verilen stringin numerik olup olmadığını Y ya da N olarak döndürür.
Kullanımı:

SQL> Select is_number('23423') from dual; 
Y
SQL> Select is_number('adsfd') from dual;
N
IF is_number(value_)='N' Then
Raise_application_error(-20001,'Lutfen gecerli bir sayı giriniz');
END IF;

Regular Expression ile Sayı Kontrolü

CREATE OR REPLACE FUNCTION is_number_regex(value_ IN VARCHAR2)
RETURN NUMBER IS
 BEGIN 
RETURN CASE regexp_like(value_,'^[+-]?[0-9]*.?[0-9]+$')
  WHEN TRUE THEN 1 
 ELSE 0  
END; 
END is_number_regex;

Fonksiyonlarda 1-0 ya da Y-N olarak sonuç döndürdük, ama isterseniz
boolean olarak TRUE-FALSE da döndürebilirsiniz..

Tagged: , , , , , ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir