Løst: pl sql aksepter

Siste oppdatering: 09/13/2023

Oracle PL/SQL er et dynamisk og robust programmeringsspråk som tilbyr moderne funksjoner for å utvikle effektive og smidige applikasjoner. PL/SQL, som ofte sammenlignes med Microsofts T-SQL, legger til prosedyrer og funksjoner i tillegg til standard SQL-forbedrende databaseapplikasjoners kapasitet. Gitt sin styrke innen transaksjonsbehandling, er det et ideelt valg for å kjøre komplekse beregninger og tung datamanipulasjon.

Oversikt over PL/SQL

PL/SQL er en prosessuell utvidelse av SQL, som skaper et naturlig, effektivt og trygt programmeringsmiljø. Den støtter SQL-datamanipulering fullt ut og forbedrer den ved å tillate lagrede prosedyrer og funksjoner, bedre feilhåndtering og robuste standarder som vanligvis ikke er tilgjengelige i SQL.

PL/SQL er blokkstrukturert, og hver anonyme blokk eller underprogram har en valgfri deklarasjonsdel der alle variabler, markører, brukerdefinerte unntak og underprogrammer deklareres. Videre støtter PL/SQL, som et prosedyrespråk, iterasjon, betinget forgrening og tillater gjenbruk via brukerdefinerte underprogrammer.

Løse et problem med PL/SQL

Her skal vi skrive en PL/SQL-blokk som løser et vanlig problem: å hente informasjon fra databasetabeller med mulige unntak.

Først må vi deklarere variablene for å holde dataene hentet fra databasen. I PL/SQL erklærer vi variabler i deklarasjonsdelen av en blokk.

DECLARE
  l_name    employees.last_name%TYPE;
  l_salary  employees.salary%TYPE;
  l_emp_id  employees.employee_id%TYPE := &Emp_Id;
BEGIN
...

Hovedhandlingen skjer i utførelsesdelen:

...
BEGIN
  SELECT last_name, salary
    INTO l_name, l_salary
    FROM employees
   WHERE employee_id = l_emp_id;
   
  DBMS_OUTPUT.PUT_LINE('Name: ' || l_name);
  DBMS_OUTPUT.PUT_LINE('Salary: ' || l_salary);
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE('No employee found with ID: ' || l_emp_id);
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('Error occurred: ' || SQLCODE || ' - ' || SQLERRM);
END;

Viktigheten av feilhåndtering

Effektiv feilhåndtering i PL/SQL-applikasjoner kan bidra til å redusere feilsøkingstiden betydelig og forbedre applikasjonens robusthet.

I skriptet ovenfor har vi håndtert muligheten for et unntak (en feil). Hvis den angitte ansatt-ID-en ikke eksisterer – SELECT INTO-setningen gir et NO_DATA_FOUND-unntak. Hvis et annet unntak blir hevet, fanger OTHERS-behandleren det.

Denne formen for unntakshåndtering er et godt eksempel på PL/SQLs robusthet og evne til å administrere kontrollflyten i applikasjonen.

PL/SQL biblioteker og pakker

PL/SQL tillater bruk av forhåndsdefinerte SQL-pakker som hjelper med å løse vanlige problemer. For eksempel ble DBMS_OUTPUT- pakken brukt i det forrige eksemplet for å sende dataene til konsollen.

Det finnes mange flere lignende pakker som DBMS_SQL (dynamisk SQL), UTL_FILE (håndtering av filer på serversiden), UTL_MAIL (sende e-post fra PL/SQL), etc. Disse pakkene, kombinert med de sterke prosedyrespråklige funksjonene til PL/SQL, tilbyr robuste muligheter for å utvikle kraftige databaseapplikasjoner.

Fordeler med PL/SQL

Noen viktige fordeler med PL/SQL inkluderer støtte for SQL, portabilitet, sikkerhet og utmerket ytelse. På grunn av den tette integrasjonen med SQL, kan du bruke alle SQL-datatyper og alle SQL-funksjoner og -operatorer.

Det øker produktiviteten ved å tilby avanserte funksjoner som unntakshåndtering, innkapsling, dataskjuling og arv. PL/SQL støtter også markører, som kalles minneområder for å manipulere komplekse SQL-spørringers utdata.

Med PL/SQL kan du beskytte dataene dine mot uautoriserte brukere ved å implementere sterke sikkerhetspolicyer. Den har også støtte for både statisk og dynamisk SQL, noe som øker kapasiteten ytterligere.

PL/SQL tilbyr også utmerket ytelse ved å tillate bunting av SQL-setninger i en enkelt blokk som kan sendes til databaseserveren i et enkelt anrop. Dette reduserer nettverkstrafikken og øker utførelseshastigheten til applikasjonen.

Relaterte innlegg: