Aşağıdaki plsql bloğu ile Oracle’da tanımlanan Ora-
hatalarının tümünü dbms_output ile ekrana çıkarabiliriz.

——————————————
DECLARE
v_error_desc VARCHAR2 (200);
v_error_code NUMBER;
BEGIN
FOR errno IN REVERSE -32799 .. 0
LOOP
v_error_code := errno;
v_error_desc := SQLERRM (errno);

IF v_error_desc NOT LIKE ‘%Message % not found;%’
AND v_error_desc != ‘ORA’ || TO_CHAR (errno, ‘FM09999’) || ‘: ‘
THEN
DBMS_OUTPUT.put_line (v_error_desc);

END IF;
END LOOP;
END;
———————————————-
Kullanıcı tanımlı hatalar’da ise ‘raise _applicaion_error(errorID, errorDesc)‘ kullanılır.’errorID‘ ve ‘errorDesc‘ alanlarını kullanıcı belirler.’errorID‘ [-20000,-20999] arasında olmalıdır.’errorDesc‘ alanı ise en fazla 2000 karakterlik ‘varchar2′ veri tipinde açıklama yazılabilir.

declare
v_value number :=110;
begin
if(v_value > 100) then
raise_application_error(-20010,’Değer büyük!’);
end if;
end;

—————————————————————–
Bir diğer yol, hatayı tanımlayıp raise etmek;

declare
v_value number :=110;
deger exception;
begin
if(v_value > 100) then
raise deger;
end if;
exception
when deger then
raise_application_error(-20010,’Değer büyük!’);
end;

—————————————————————-

Reklam