I denne artikkelen vil du lære om en av feilhåndteringsprosedyrene i Oracle-databasen kalt REISE_APPLICATION_ERROR.
ORACLE REISE_APPLICATION_ERROR PROSEDYRE
Raise_application_error i Oracle er en lagret prosedyre som lar deg heve de brukerdefinerte feilmeldingene.
Når du jobber med Oracle -databasen, kan du ha kommet over en feilmelding som den i følgende:
[42000] [904] ORA-00904: "Hei": Ugyldig identifikator
Denne typen feil er kjent som en databasemotorfeil. Det er definert i Oracle -databasen og reist når det oppstår en gitt feil.
Ved å bruke prosedyren REISE_APPLICATION_ERROR, lar Oracle oss definere våre tilpassede meldinger med en spesifikk feilkode og melding.
Dette kan være veldig nyttig når en spesifikk feil oppstår og du ønsker å varsle brukeren med en beskrivende feilmelding. Dette betyr at du ikke vil ha fjernet feil unntak uten uttalelse om hva som skjedde.
Prosedyre syntaks og parametere
Følgende kodebit etablerer syntaks for REISE_APPLICATION_ERROR PROSEDYRE:
heve_applikasjon_error (
feil_nummer,
beskjed,
[True | FALSK]
);
Prosedyren består av tre hovedparametere:
Merk: Å bevare feilstabelen betyr at feilen legges til serien med tidligere feil. Hvis stabelen ikke er bevart, erstatter den nye feilmeldingen alle de tidligere feilene.
Følgende er noen viktige punkter å merke seg for prosedyren REISE_APPLICATION_ERROR:
Eksempel Raise_application_error lagret prosedyrebruk
I dette eksemplet skal vi demonstrere hvordan du bruker prosedyren for reis_application_error ved bruk av HR -skjemaet.
https: // dokumenter.Oracle.com/cd/b13789_01/server.101/b10771/scripts003.htm
Tenk på følgende oppgitt kildekode:
Opprett eller erstatt prosedyre Check_Commission (
emp_id nummer
)
er
FNAME ansatte.Første_navn%type;
EM -ansatte.E -post%type;
SAL -ansatte.Lønn%type;
Kommisjonsansatte.Commission_pct%type;
begynne
Velg First_Name, E -post, lønn, kommisjon_pct
inn i fname, em, sal, kommisjon
fra ansatte
hvor ansatt_id = emp_id;
Hvis kommisjonen er null da
Raise_application_error (-20002, 'Null Commission Prosentage oppstått!!'|| emp_id);
slutt om;
unntak
Når andre da
Dbms_output.Put_line ('sqlcode:' || sqlcode);
Dbms_output.Put_line ('sqlerrm:' || sqlerrm);
slutt;
Det forrige eksemplet starter med å lage en prosedyre som godtar en ansattes ID. Vi bruker deretter den ansatte til å velge verdiene fra de ansatte. Til slutt bruker vi en IF -uttalelse for å sjekke om kommisjonen for den mottatte raden er null. Hvis det er sant, reiser vi et unntak.
Vi kan ringe prosedyren med Target Employeed ID:
Ring Check_Commission (100);
Produksjon:
SQLCode -438
SQLERRM: SQL0438N -applikasjonen hevet feil eller advarsel med diagnostisk tekst: "Null -kommisjonsprosent oppstått:. SQLSTATE = UD030
Konklusjon
I denne opplæringen lærte du hvordan du bruker REISE_APPLICATION_ERROR Lagret prosedyre for å heve de tilpassede feilmeldingene.