65 PL/SQL pitanja i odgovora za intervju (2025.)
Pitanja i odgovori za intervju za PL/SQL za brucoše
1) Što je PL SQL?
Oracle PL/SQL je proširenje SQL jezika koji kombinira snagu SQL-a za manipulaciju podacima s procesorskom snagom proceduralnog jezika za stvaranje super moćnih SQL upita. PL/SQL osigurava besprijekornu obradu SQL naredbi poboljšavajući sigurnost, prenosivost i robusnost baze podataka.
PL/SQL je kratica za "proširenja proceduralnog jezika za jezik strukturiranih upita".
👉 Besplatno preuzimanje PDF-a: Pitanja i odgovori za intervju za PL/SQL
2) Razlikujte % ROWTYPE i TYPE RECORD.
% ROWTYPE koristi se kada upit vrati cijeli redak tablice ili prikaza.
VRSTA ZAPIS s druge strane, koristi se kada upit vrati stupac različitih tablica ili prikaza.
Npr. VRSTA r_emp je SNIMITI (sno smp.smpno%type,sname smp sname %type)
e_rec smp %ROWTYPE
Kursor c1 je odabir smpno,dept iz smp;
e_rec c1 %ROWTYPE
3) Objasnite upotrebu kursora.
Kursor je imenovano privatno područje u SQL-u iz kojeg se može pristupiti informacijama. Oni moraju obraditi svaki red zasebno za upite koji vraćaju više redaka.
4) Prikaži kod kursora za petlju.
Kursor implicitno deklarira %ROWTYPE kao indeks petlje. Zatim otvara kursor, dobiva retke vrijednosti iz aktivnog skupa u poljima zapisa i zatvara se kada se svi zapisi obrade.
Npr.
FOR smp_rec IN C1 LOOP totalsal=totalsal+smp_recsal; ENDLOOP;
5) Objasnite upotrebu okidača baze podataka.
PL/SQL programska jedinica povezana s određenom tablicom baze podataka naziva se okidač baze podataka. Koristi se za:
1) Izmjene podataka revizije.
2) Transparentno bilježite događaje.
3) Provedite složena poslovna pravila.
4) Održavajte tablice replika
5) Izvedite vrijednosti stupaca
6) Implementirajte složene sigurnosne autorizacije
6) Koje su dvije vrste iznimaka.
Dio za rukovanje pogreškama PL/SQL bloka naziva se Iznimka. Imaju dvije vrste: user_defined i unaprijed definirane.
7) Prikaži neke unaprijed definirane iznimke.
DUP_VAL_ON_INDEX
NULA_DIVIDE
NISU PRONAĐENI PODACI
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
POGREŠAN BROJ
INVALID_CURSOR
PROGRAM_ERROR
TIMEOUT _ON_RESOURCE
STORAGE_ERROR
PRIJAVA_ODBIJENA
VALUE_ERROR
i tako dalje
8) Objasnite Raise_application_error.
To je procedura paketa DBMS_STANDARD koja dopušta izdavanje korisnički definiranih poruka o pogrešci iz okidača baze podataka ili pohranjenog potprograma.
9) Pokažite kako se pozivaju funkcije i procedure u PL SQL bloku.
Funkcija se poziva kao dio izraza.
total:=calculate_sal('b644')
Procedura se naziva izjava u PL / SQL.
calculate_bonus('b644');
10) Objasnite dvije virtualne tablice dostupne u trenutku izvršavanja okidača baze podataka.
Stupci tablice nazivaju se OLD.column_name i NEW.column_name.
Za okidače povezane s INSERT, dostupne su samo vrijednosti NEW.column_name.
Za okidače povezane s DELETE, dostupne su samo vrijednosti OLD.column_name.
Za okidače povezane s UPDATE dostupna su oba stupca tablice.
11) Koja su pravila koja se primjenjuju na NULL tijekom usporedbi?
1) NULL nikada nije TRUE ili FALSE
2) NULL ne može biti jednaka ili nejednaka drugim vrijednostima
3) Ako je vrijednost u izrazu NULL, tada sam izraz daje vrijednost NULL osim operatora spajanja (||)
12) Kako se kompajlira proces PL SQL?
Proces kompilacije uključuje provjeru sintakse, povezivanje i procese generiranja p-koda.
Provjera sintakse provjerava PL SQL kodove na pogreške kompilacije. Kada su sve pogreške ispravljene, adresa pohrane se dodjeljuje varijablama koje sadrže podatke. Zove se Uvezivanje. P-kod je popis uputa za PL SQL motor. P-kod je pohranjen u bazi podataka za imenovane blokove i koristi se sljedeći put kada se izvrši.
13) Razlikujte pogreške u sintaksi i pogreške tijekom izvođenja.
Pogreška u sintaksi može se lako otkriti pomoću PL/SQL kompajlera. Na primjer, netočan pravopis.
Pogreška vremena izvođenja rješava se uz pomoć odjeljka za rukovanje iznimkama u PL/SQL blok. Na primjer, naredba SELECT INTO, koja ne vraća nijedan redak.
14) Objasnite Izvršenje, Vraćanje i Spremanje.
Za naredbu COMMIT vrijedi sljedeće:
- Ostali korisnici mogu vidjeti promjene podataka napravljene transakcijom.
- Otpuštaju se zaključavanja stečena transakcijom.
- Posao obavljen transakcijom postaje trajan.
Izjava ROLLBACK izdaje se kada transakcija završi, a vrijedi sljedeće.
- Posao obavljen u prijelazu poništava se kao da nikada nije bio izdan.
- Otpuštaju se sva zaključavanja stečena transakcijom.
Poništava sav posao koji je korisnik obavio u transakciji. Uz SAVEPOINT samo se dio transakcije može poništiti.
15) Definirajte implicitne i eksplicitne kursore.
Kursor je implicitan prema zadanim postavkama. Korisnik ne može kontrolirati ili obrađivati informacije u ovom pokazivaču.
Ako upit vrati više redaka podataka, program definira eksplicitni kursor. To omogućuje aplikaciji da obradi svaki red uzastopno kako ga kursor vraća.
16) Objasnite pogrešku tablice mijenjanja.
To se događa kada okidač pokuša ažurirati redak koji trenutno koristi. Popravlja se korištenjem pogleda ili privremenih tablica, tako da baza podataka odabire jednu i ažurira drugu.
17) Kada je potrebna deklaracija?
DECLARE izjavu koriste PL SQL anonimni blokovi kao što su samostalne, nepohranjene procedure. Ako se koristi, mora biti prvi u samostalnoj datoteci.
18) Koliko se okidača može primijeniti na tablicu?
Na jednu tablicu može se primijeniti najviše 12 okidača.
19) Koja je važnost SQLCODE-a i SQLERRM-a?
SQLCODE vraća vrijednost broja greške za posljednju grešku, dok SQLERRM vraća poruku za posljednju grešku.
20) Ako je pokazivač otvoren, kako možemo pronaći u PL SQL bloku?
može se koristiti varijabla statusa kursora %ISOPEN.
PL/SQL Intervju Pitanja za iskusne
21) Prikaži dvije iznimke PL/SQL kursora.
Pokazivač_već_otvoren
Invaid_cursor
22) Koji operatori rade s NULL?
NVL pretvara NULL u drugu specificiranu vrijednost.
var:=NVL(var2,'Hi');
IS NULL i IS NOT NULL mogu se koristiti za posebnu provjeru je li vrijednost varijable NULL ili nije.
23) Ima li SQL*Plus i PL/SQL Engine?
Ne, SQL*Plus nema ugrađen PL/SQL Engine. Stoga se sav PL/SQL kod šalje izravno u pogon baze podataka. Mnogo je učinkovitiji jer se svaka izjava ne uklanja zasebno.
24) Koji su paketi dostupni PL SQL programerima?
DBMS_ serija paketa, kao što su DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.
25) Objasnite 3 osnovna dijela okidača.
- Izjava ili događaj koji pokreće.
- Ograničenje
- U Akciji
26) Što su karakterne funkcije?
INITCAP, UPPER, SUBSTR, LOWER i LENGTH sve su znakovne funkcije. Grupne funkcije daju rezultate na temelju grupa redaka, za razliku od pojedinačnih redaka. One su MAX, MIN, AVG, COUNT i SUM.
27) Objasnite TTITLE i BTITLE.
TTITLE i BTITLE naredbe koje kontroliraju zaglavlja i podnožja izvješća.
28) Prikaži atribute kursora PL/SQL.
%ISOPEN:
Provjerava je li kursor otvoren ili ne
%ROWCOUNT:
Broj redaka koji su ažurirani, izbrisani ili dohvaćeni.
%FOUND:
Provjerava je li kursor dohvatio neki red. Točno je ako su redovi dohvaćeni
%NOT FOUND:
Provjerava je li kursor dohvatio neki red. Istina je ako se redovi ne dohvaćaju.
29) Što je Intersect?
Intersect je proizvod dviju tablica i navodi samo podudarne retke.
30) Što su sekvence?
Nizovi se koriste za generiranje sekvencijskih brojeva bez dodatnih troškova zaključavanja. Nedostatak mu je što se redni broj gubi ako se transakcija vrati.
31) Kako biste referencirali vrijednosti stupaca PRIJE i NAKON što ste umetnuli i izbrisali okidače?
Koristeći ključnu riječ "new.column name", okidači mogu referencirati vrijednosti stupaca prema novoj kolekciji. Korištenjem ključne riječi "old.column name", mogu referencirati vrijednosti stupaca prema staroj kolekciji.
32) Koje su upotrebe ključnih riječi SYSDATE i USER?
SYSDATE se odnosi na trenutni sistemski datum poslužitelja. To je pseudo stupac. USER je također pseudo stupac, ali se odnosi na trenutnog korisnika koji je prijavljen na sesiju. Koriste se za praćenje promjena koje se događaju u tablici.
33) Kako ROWID pomaže u bržem izvođenju upita?
ROWID je logička adresa retka, nije fizički stupac. Sastoji se od broja bloka podataka, broja datoteke i broja retka u bloku podataka. Stoga se I/O vrijeme minimizira dohvaćanjem reda i rezultira bržim upitom.
34) Za što se koriste poveznice baze podataka?
Veze baza podataka stvaraju se kako bi se uspostavila komunikacija između različitih baza podataka ili različitih okruženja kao što su testiranje, razvoj i proizvodnja. Veze baze podataka su samo za čitanje za pristup drugim informacijama.
35) Što radi dohvaćanje kursora?
Dohvaćanje kursora čita Skup rezultata red po red.
36) Što radi zatvaranje kursora?
Zatvaranje pokazivača briše privatno SQL područje, kao i de-alokaciju memorije
37) Objasnite upotrebu kontrolne datoteke.
To je binarna datoteka. Bilježi strukturu baze podataka. Uključuje lokacije nekoliko datoteka dnevnika, imena i vremenske oznake. Mogu se pohraniti na različitim mjestima kako bi pomogli u pronalaženju informacija ako se jedna datoteka ošteti.
38) Objasnite dosljednost
Dosljednost pokazuje da se podaci neće odraziti na druge korisnike dok se podaci ne potvrde, tako da se održava dosljednost.
39) Razlikujte anonimne blokove i potprograme.
Anonimni blokovi su neimenovani blokovi koji se nigdje ne pohranjuju dok se potprogrami kompiliraju i pohranjuju u bazu podataka. Sastavljaju se tijekom izvođenja.
40) Razlika između DECODE i CASE.
Naredbe DECODE i CASE vrlo su slične, ali CASE je proširena verzija DECODE. DECODE ne dopušta izjave za donošenje odluka umjesto njega.
odaberite decode(totalsal=12000,'high',10000,'medium') kao decode_tesr iz smp gdje je smpno u (10,12,14,16);
Ova izjava vraća pogrešku.
CASE se izravno koristi u PL SQL, ali DECODE se koristi u PL SQL samo kroz SQL.
41) Objasnite autonomnu transakciju.
Autonomna transakcija je neovisna transakcija o glavnoj ili roditeljskoj transakciji. Nije ugniježđen ako ga je pokrenula druga transakcija.
Postoji nekoliko situacija za korištenje autonomnih transakcija kao što su bilježenje događaja i revizija.
42) Napravite razliku između SGA i PGA.
SGA je kratica za Globalno područje sustava, dok je PGA kratica za Globalno područje programa ili procesa. PGA-u je dodijeljeno samo 10% RAM-a, ali SGA-u je dodijeljeno 40% RAM-a.
43) Koja je lokacija Pre_defined_functions.
Pohranjeni su u standardnom paketu pod nazivom "Funkcije, procedure i paketi"
44) Objasnite polimorfizam u PL SQL.
Polimorfizam je značajka OOP-a. To je sposobnost stvaranja varijable, objekta ili funkcije s više oblika. PL/SQL podržava polimorfizam u obliku preopterećenja programske jedinice unutar funkcije člana ili paketa. Mora se izbjegavati nedvosmislena logika dok se preopterećenje vrši.
45) Koja je upotreba MERGE?
MERGE se koristi za kombiniranje više DML izjava u jednu.
Sintaksa: spajanje u naziv tablice
koristeći (upit)
uključeno (uvjet pridruživanja)
kada se ne podudara onda
[insert/update/delete] naredba
kad se poklapa onda
[insert/update/delete] naredba
PL/SQL pitanja za intervju za 5+ godina iskustva
46) Mogu li se 2 upita istovremeno izvršiti u sustavu distribuirane baze podataka?
Da, mogu se izvršiti istovremeno. Jedan upit je uvijek neovisan o drugom upitu u sustavu distribuirane baze podataka koji se temelji na predaji u 2 faze.
47) Objasnite Raise_application_error.
To je procedura paketa DBMS_STANDARD koja dopušta izdavanje korisnički definiranih poruka o pogrešci iz okidača baze podataka ili pohranjenog potprograma.
48) Koji se izlazni parametar koristi za iako se izjava return može koristiti i u pl/sql?
Izlazni parametri dopuštaju više od jedne vrijednosti u pozivnom programu. Out parametar se ne preporučuje u funkcijama. Procedure se mogu koristiti umjesto funkcija ako je potrebno više vrijednosti. Stoga se ove procedure koriste za izvršavanje izlaznih parametara.
49) Kako biste pretvorili datum u julijanski format datuma?
Možemo koristiti niz J formata:
SQL > odaberite to_char(to_date('29-Mar-2013′,'dd-mon-yyyy'),'J') kao julian iz dual;
JULIAN
50) Objasnite SPOOL
Spool naredba može ispisati izlaz sql naredbi u datoteku.
spool/tmp/sql_outtxt
odaberite smp_name, smp_id iz smp gdje dept='accounts';
namotati;
51) Navedite od čega se sastoji PL/SQL paket?
PL/SQL paket se sastoji od
- PL/SQL tablica i zapis TYPE izjava
- Postupci i funkcije
- Pokazivači
- Varijable (tablice, skalari, zapisi, itd.) i konstante
- Nazivi iznimaka i pragme za povezivanje broja pogreške s iznimkom
- Pokazivači
52) Navedite koje su prednosti PL/SQL paketa?
Pruža nekoliko pogodnosti kao što su
- Prisilno skrivanje informacija: Nudi slobodu izbora hoće li podaci biti privatni ili javni
- Dizajn odozgo prema dolje: Možete dizajnirati sučelje za kod skriven u paketu prije nego što stvarno implementirate same module
- Postojanost objekta: Objekti deklarirani u specifikaciji paketa ponašaju se kao globalni podaci za sve PL/SQL objekte u aplikaciji. Možete modificirati paket u jednom modulu i zatim referencirati te promjene na drugi modul
- Objektno orijentirani dizajn: Paket daje programerima snažan nadzor nad načinom na koji se mogu koristiti moduli i podatkovne strukture unutar paketa
- Jamčenje integriteta transakcije: Omogućuje razinu integriteta transakcije
- Poboljšanje izvedbe: The RDBMS automatski prati valjanost svih programskih objekata pohranjenih u bazi podataka i poboljšava performanse paketa.
53) Navedite koje su različite metode za praćenje PL/SQL koda?
Praćenje koda ključna je tehnika za mjerenje izvedbe koda tijekom izvođenja. Različite metode za praćenje uključuju
- DBMS_APPLICATION_INFO
- DBMS_TRACE
- DBMS_SESSION i DBMS_MONITOR
- uslužni programi trcsess i tkproof
54) Navedite što radi hijerarhijski profiler?
Hijerarhijski profiler mogao bi profilirati pozive napravljene u PL/SQL-u, osim popunjavanja praznine između rupa u zakonu i očekivanja praćenja performansi. Učinkovitost hijerarhijskog profilera uključuje
- Različito izvješćivanje za SQL i PL/SQL potrošnja vremena
- Izvještava o broju različitih poziva potprograma napravljenih u PL/SQL-u i vremenu provedenom sa svakim pozivom potprograma
- Višestruka interaktivna analitička izvješća u HTML formatu korištenjem uslužnog programa naredbenog retka
- Učinkovitiji od konvencionalnog profilera i drugih uslužnih programa za praćenje
55) Navedite što vam omogućuje PLV msg?
PLV poruka vam omogućuje
- Dodijelite pojedinačnu tekstualnu poruku određenom retku u PL/SQL tablici
- Dohvaća tekst poruke prema broju
- Automatski zamjenjuje vaše vlastite poruke standardnim Oracle poruke o pogrešci s prekidačem ograničenja
- Skupno učitavanje brojeva poruka i teksta iz tablice baze podataka izravno PLV msg PL/SQL tablice
56) Navedite što nudi PLV (PL/Vision) paket?
- Nulta vrijednost zamjene
- Skup rutina tvrdnji
- Razne komunalije
- Skup konstanti koje se koriste u cijeloj PL viziji
- Unaprijed definirani tipovi podataka
57) Navedite čemu služe PLVprs i PLVprsps?
- PLVprs: To je proširenje za raščlanjivanje nizova za PL/SQL i najniža je razina funkcionalnosti raščlanjivanja nizova
- PLVprsps: To je paket najviše razine za raščlanjivanje PL/SQL izvornog koda u zasebne atome. Za obavljanje posla oslanja se na druge pakete za raščlanjivanje.
58) Objasnite kako možete kopirati datoteku u sadržaj datoteke i datoteku u PL/SQL tablicu unaprijed PL/SQL?
S jednim programskim pozivom – “fcopy procedura”, možete kopirati kompletan sadržaj jedne datoteke u drugu datoteku. Dok za kopiranje sadržaja datoteke izravno u PL/SQL tablicu, možete koristiti program “file2pstab”.
59) Objasnite kako se rukovanje iznimkama radi unaprijed PL/SQL?
Za rukovanje iznimkama PL/SQL pruža učinkovit dodatak PLVexc. PLVexc podržava četiri različite akcije rukovanja iznimkama.
- Nastavite s obradom
- Snimite pa nastavite
- Zaustavi obradu
- Snimite i zatim zaustavite obradu
Za one iznimke koje se ponavljaju možete koristiti naredbu RAISE.
60) Navedite s kojim se problemom možete suočiti dok zapisujete podatke dnevnika u tablicu baze podataka u PL/SQL?
Dok zapisujete podatke dnevnika u tablicu baze podataka, problem s kojim se suočavate je da su informacije dostupne tek kada se novi redovi predaju bazi podataka. To bi mogao biti problem jer se takav PLVlog obično koristi za praćenje pogrešaka i u mnogim takvim slučajevima trenutna transakcija ne bi uspjela ili bi bilo potrebno vraćanje na staro stanje.
61) Navedite koja je to funkcija koja se koristi za prijenos dnevnika PL/SQL tablice u tablicu baze podataka?
Za prijenos PL/SQL tablice zapisnik funkcije tablice dnevnika baze podataka “POSTUPAK ps2db” koristi se.
62) Kada morate koristiti zadanu točku spremanja "povratka na" PLVlog?
Zadana točka spremanja "vraćanja na" PLVlog-a koristi se kada su korisnici uključili aktivnost vraćanja i nisu osigurali alternativnu točku spremanja u pozivu put_line. Zadana točka spremanja inicijalizirana je na konstantu c none.
63) Zašto se PLVtab smatra najlakšim načinom pristupa PL/SQL tablici?
PL/SQL tablice su najbliže nizovima u PL/SQL-u, a da biste pristupili ovoj tablici prvo morate deklarirati tip tablice, a zatim morate deklarirati samu PL/SQL tablicu. Ali korištenjem PLVtaba možete izbjeći definiranje vlastite vrste PL/SQL tablice i olakšati pristup PL/SQL podatkovnoj tablici.
64) Navedite što vam PLVtab omogućuje kada prikazujete sadržaj PL/SQL tablica?
PLVtab vam omogućuje sljedeće stvari kada prikazujete sadržaj PL/SQL tablica
- Prikažite ili potisnite zaglavlje za tablicu
- Prikažite ili potisnite brojeve redaka za tablične vrijednosti
- Prikaži prefiks prije svakog retka tablice
65) Objasnite kako možete spremiti ili smjestiti svoju poruku u tablicu?
Da biste spremili poruku u tablicu, možete to učiniti na dva načina
- Učitaj pojedinačne poruke s pozivima na
add_text
Postupci - Učitajte skupove poruka iz tablice baze podataka s
load_from_dbms
Postupci
66) Navedite koja je upotreba funkcije “procedura modula” u PL/SQL?
“Procedura modula” omogućuje pretvaranje svih redaka koda u određenoj programskoj jedinici jednim pozivom procedure. Postoje tri argumenta za module
- modul_in
- cor_in
- Zadnji_modul_in
67) Navedite što PLVcmt i PLVrb rade u PL/SQL?
PL/Vision nudi dva paketa koji vam pomažu u upravljanju obradom transakcija u PL/SQL aplikaciji. To je PLVcmt i PLVrb.
- PLVcmt: Paket PLVcmt objedinjuje logiku i složenost za rad s obradom predaje
- PLVrb: Omogućuje programsko sučelje za vraćanje aktivnosti u PL/SQL
Ova pitanja za intervju također će vam pomoći u vašem životu