Naravno, definitivno vam mogu pomoći da razumijete proceduru RAISE_APPLICATION_ERROR u Oracle SQL-u. To je ugrađena procedura u paketu DBMS_STANDARD, koja se koristi za prikazivanje poruka o greškama koje su prilagođene korisniku.
Oracle obezbeđuje mehanizam za programere da prikažu prilagođene poruke o grešci korisnicima kada određeno poslovno pravilo ili sistemski zahtev nisu ispunjeni. Ova procedura je poznata kao RAISE_APPLICATION_ERROR.
RAISE_APPLICATION_ERROR je zapravo procedura koja je dio DBMS_STANDARD paketa. Ona omogućava programerima da izazovu izuzetak i povežu ga sa brojem greške i porukom. Njena sintaksa je:
RAISE_APPLICATION_ERROR (
greška_broj NUMBER,
poruka VARCHAR2 [,
keep_error_stack BOOLEAN DEFAULT FALSE]);
Prvi argument (error_number) je broj greške koji može biti između -20000 do -20999. Drugi argument je poruka, koja je niz koji se koristi za prikaz poruke o grešci. Treći opcioni argument (keep_error_stack) je Boolean argument koji prati stek grešaka ili ga zamjenjuje.
Prođimo kroz primjer kako bismo ga bolje razumjeli.
Rješenje problema
Zamislite banku u kojoj nijednom klijentu nije dozvoljeno da podigne iznos veći od 50000 odjednom. Možemo pokrenuti grešku u aplikaciji kada je iznos koji se povlači veći od 50000.
- Prvi korak je kreiranje funkcije koja provjerava ograničenje povlačenja:
KREIRAJ ILI ZAMJENI FUNKCIJU check_withdrawl(p_withdrawl_amt U BROJU)
RETURN BOOLEAN AS
BEGIN
AKO p_withdrawl_amt > 50000 ONDA
RAISE_APPLICATION_ERROR(-20001,'Ne možete povući više od 50000 odjednom');
OSTALO
RETURN TRUE;
END IF;
END check_withdrawl;
- Zatim pozovite ovu funkciju prije akcije povlačenja u programu, na sljedeći način:
IZJAVITE
l_result BOOLEAN;
BEGIN
l_result := check_withdrawl(60000);
Izuzetak
KADA OSTALI ONDA
dbms_output.put_line(SQLERRM);
END;
Rad s bibliotekama i razumijevanje paketa DBMS_STANDARD
Paket DBMS_STANDARD je PL/SQL biblioteka koja dolazi s Oracle bazom podataka. Sadrži mnoge pomoćne programe poput potprograma, izuzetaka i konstanti. Jedan od njih je procedura RAISE_APPLICATION_ERROR, koju smo koristili u našem primjeru.
Napredno korištenje RAISE_APPLICATION_ERROR
Procedura RAISE_APPLICATION_ERROR vam također omogućava da zadržite trenutni stog grešaka i da mu dodate svoju poruku. Ovo je korisno kada želite znati cijelu putanju izvršenja koja je dovela do greške. Možete koristiti proceduru RAISE_APPLICATION_ERROR na ovaj napredni način definiranjem trećeg parametra kao TRUE.
Zapamtite, glavni cilj ove procedure je da obezbijedi mehanizam za komuniciranje grešaka specifičnih za aplikaciju, što čini kod pouzdanijim i lakšim za otklanjanje grešaka i održavanje. Koristeći RAISE_APPLICATION_ERROR, Oracle SQL programeri mogu poboljšati ukupni kvalitet svog rada kodiranja.
