30 most important pl sql interview questions
Najčešća pitanja o PL / SQL intervjuima s primjerima koji će vam pomoći da se pripremite za sljedeći intervju:
Što je PL / SQL?
PL / SQL (Procedural Language / SQL) u osnovi je proceduralno proširenje Oracle - SQL-a. PL / SQL pomaže korisniku da razvije složene aplikacije baza podataka koristeći kontrolne strukture, postupke, funkcije, module, itd.
Ovaj će članak raspravljati o najvažnijim pitanjima i odgovorima na PL / SQL intervjue.
Pitanja i odgovori za PL / SQL intervjue
Počnimo!!
P # 1) Razlikovati PL / SQL i SQL?
Odgovor: Razlika između SQL i PL / SQL može se kategorizirati na sljedeći način:
SQL | PL / SQL |
---|---|
SQL je prirodni jezik koji je vrlo koristan za interaktivnu obradu. | PL / SQL je proceduralno proširenje Oracle - SQL-a. |
SQL ne nudi nikakve proceduralne mogućnosti poput testiranja stanja, petlje. | PL / SQL podržava proceduralne mogućnosti kao i značajke visokog jezika kao što su uvjetni izrazi, izrazi petlje itd. |
Sve SQL izraze poslužitelj baze podataka izvršava jedan po jedan, stoga je to dugotrajan proces. | PL / SQL izrazi istodobno šalju čitav blok izraza na poslužitelj baze podataka, čime se mrežni promet znatno smanjuje. |
U SQL-u nema postupaka za rukovanje pogreškama. | PL / SQL podržava prilagođeno rukovanje pogreškama. |
P # 2) Navesti karakteristike PL / SQL-a?
Odgovor:
Karakteristike PL / SQL-a su sljedeće:
- PL / SQL omogućuje pristup i dijeljenje istih potprograma u više aplikacija.
- Poznat je po prenosivosti koda jer se kôd može izvršiti na bilo kojem operativnom sustavu pod uvjetom da je na njega učitan Oracle.
- Uz PL / SQL korisnici mogu pisati vlastite prilagođene rutine za rukovanje pogreškama.
- Poboljšane performanse transakcija integracijom u Oracle rječnik podataka.
P # 3) Koji su tipovi podataka dostupni u PL / SQL-u?
Odgovor: Tipovi podataka definiraju načine prepoznavanja vrste podataka i njihovih povezanih operacija.
Postoje 4 vrste unaprijed definiranih tipova podataka objašnjene na sljedeći način:
- Skalarni tipovi podataka: Skalarni tip podataka je atomski tip podataka koji nema nikakve unutarnje komponente.
- Na primjer
- CHAR (raspon vrijednosti znakova fiksne duljine između 1 i 32.767 znakova)
- VARCHAR2 (raspon vrijednosti znakova promjenjive duljine između 1 i 32.767 znakova)
- BROJ (fiksno-decimalne, plutajuće-decimalne ili cjelobrojne vrijednosti)
- BOOLEAN (logički tip podataka za TRUE FALSE ili NULL vrijednosti)
- DATUM (pohranjuje podatke o datumu i vremenu)
- LONG (podaci znakova promjenjive duljine)
- Složeni tipovi podataka: Sastavljeni tip podataka sastoji se od drugih vrsta podataka i unutarnjih komponenata kojima se lako može upravljati i njima se manipulira. Na primjer, SNIMI, TABLIRA I PROMIJENI.
- Tipovi referentnih podataka: Referentni tip podataka sadrži vrijednosti, koje se nazivaju pokazivači koji označavaju druge programske stavke ili stavke podataka. Na primjer, REF KURSOR.
- Tipovi podataka velikih objekata: Tip podataka Velikog objekta sadrži vrijednosti, nazvane lokatorima, koje definiraju mjesto velikih objekata (poput videoisječaka, grafičkih slika itd.) Pohranjenih izvan reda.
- Na primjer
- BFILE (binarna datoteka)
- BLOB (binarni veliki objekt)
- CLOB (Karakter veliki objekt)
- NCLOB (veliki objekt tipa NCHAR)
Preporučena literatura = >> PL SQL tipovi podataka
P # 4) Objasnite svrhu primjera vrsta podataka% TYPE i% ROWTYPE na primjeru?
Odgovor: PL / SQL koristi atribut deklaracije% TYPE za sidrenje. Ovaj atribut pruža tip podataka varijable, konstante ili stupca. Atribut% TYPE koristan je prilikom deklariranja varijable koja ima isti tip podataka kao stupac tablice.
Na primjer, varijabla m_empno ima isti tip podataka i veličinu kao i stupac empno u tablici emp.
m_empno emp.empno%TYPE;
Atribut% ROWTYPE koristi se za proglašavanje varijable zapisom koji ima istu strukturu kao redak u tablici. Redak je definiran kao zapis i njegova polja imaju ista imena i vrste podataka kao stupci u tablici ili prikazu.
Na primjer:
dept_rec dept%ROWTYPE;
Ovo deklarira zapis koji može pohraniti cijeli redak za DEPT tablicu.
P # 5) Što razumijete pod PL / SQL paketima?
Odgovor: PL / SQL paketi su objekti sheme koji na jednom mjestu grupiraju funkcije, pohranjene procedure, pokazivače i varijable.
Paketi imaju 2 obavezna dijela:
- Specifikacije paketa
- Tijelo paketa
P # 6) Što razumijete pod kursorima PL / SQL?
Odgovor: PL / SQL zahtijeva posebnu sposobnost dohvaćanja i obrade više redaka, a taj je resurs poznat pod nazivom Pokazivači. Kursor je pokazivač na područje konteksta, što je područje memorije koja sadrži SQL izraze i informacije za obradu izraza.
PL / SQL kursor je u osnovi mehanizam pod kojim se odabire više redaka podataka iz baze podataka, a zatim se svaki redak pojedinačno obrađuje unutar programa.
P # 7) Objasnite vrste kursora.
kako koristiti timski poslužitelj
Odgovor: Postoje dvije vrste kursora.
Objašnjeni su na sljedeći način:
a) Eksplicitni pokazivači: Za upite koji vraćaju više od jednog retka, programer deklarira i imenuje eksplicitni kursor. Da bi se koristio eksplicitni kursor u PL / SQL, slijede se 4 koraka
- Izjavite kursor
Sintaksa: KURSOR je
Izjava SELECT;
Ovdje je naziv dodijeljen kurzoru, a izraz SELECT upit koji vraća retke aktivnom skupu kursora.
- Otvorite pokazivač
Sintaksa: OTVOREN ;
Gdje je naziv prethodno definiranog kursora.
- Dohvaćanje redaka s pokazivača
Sintaksa: PRIJEM U;
Ovdje se odnosi na ime prethodno definiranog kursora iz kojeg se dohvaćaju retci.
predstavlja popis varijabli koje će primiti podatke koji se preuzimaju.
- Zatvaranje kursora
Sintaksa: ZATVORITI ;
Evo naziva kursora koji se zatvara.
b) Implicitni pokazivači: Kada se izvrši bilo koji SQL izraz, PL / SQL automatski kreira kursor bez definiranja takvih kursora poznatih kao implicitni kursori.
Za sljedeće izjave PL / SQL koristi implicitne kursore
- UMETNUTI
- AŽURIRAJ
- IZBRISATI
- SELECT (upiti koji vraćaju točno jedan redak)
P # 8) Kada koristimo okidače?
Odgovor: Riječ 'Okidač' znači aktivirati. U PL / SQL okidač je pohranjena procedura koja definira radnju koju baza podataka poduzima kada se izvodi događaj povezan s bazom podataka.
Okidači su uglavnom potrebni za sljedeće svrhe:
- Da bi se održala složena ograničenja integriteta
- Revizija podataka tablice bilježenjem promjena
- Signaliziranje drugih programskih radnji kada se u tablici izvrše promjene
- Provođenje složenih poslovnih pravila
- Sprječavanje nevaljanih transakcija
P # 9) Objasniti razliku u izvršavanju okidača i pohranjenih procedura?
Odgovor: Pohranjena procedura izvršava se eksplicitno izdavanjem naredbe poziva postupka iz drugog bloka putem poziva procedure s argumentima.
Okidač se izvršava implicitno kad god se dogodi bilo koji događaj okidanja poput pojave DML izraza.
P # 10) Objasnite razliku između okidača i ograničenja?
Odgovor: Okidači se razlikuju od ograničenja na sljedeće načine:
Okidači | Ograničenja |
---|---|
Utječu na one retke dodane nakon što je aktiviran okidač. | Utječu na sve retke tablice, uključujući one koji već postoje kad je ograničenje omogućeno. |
Okidači se koriste za provedbu složenih poslovnih pravila koja se ne mogu implementirati pomoću ograničenja integriteta. | Ograničenja održavaju integritet baze podataka. |
P # 11) Što je PL / SQL blok?
Odgovor: U PL / SQL, izrazi su grupirani u jedinice koje se nazivaju Blocks. PL / SQL blokovi mogu sadržavati konstante, varijable, SQL izraze, petlje, uvjetne izraze, rukovanje iznimkama. Blokovi također mogu graditi proceduru, funkciju ili paket.
Široko, PL / SQL blokovi su dvije vrste:
(i) Anonimni blokovi: PL / SQL blokovi bez zaglavlja poznati su kao anonimni blokovi. Ti blokovi ne čine tijelo postupka, funkcije ili okidača.
Primjer:
DECLARE num NUMBER(2); sq NUMBER(3); BEGIN num:= &Number1; sq := num*num; DBMS_OUTPUT.PUT_LINE(‘Square:’ ||sq); END;
(ii) Imenovani blokovi: PL / SQL blokovi koji imaju zaglavlje ili oznake poznati su kao Imenovani blokovi. Imenovani blokovi mogu biti potprogrami (procedure, funkcije, paketi) ili okidači.
Preporučena literatura = >> PL SQL postupci i funkcije
Primjer:
FUNCTION sqr (num IN NUMBER) RETURN NUMBER is sq NUMBER(2); BEGIN sq:= num*num; RETURN sq; END;
P # 12) Razlikovati sintaksne i runtime pogreške?
Odgovor:
Sintaksne pogreške su oni koje PL / SQL kompajler može lako prepoznati. Te pogreške mogu biti pravopisna pogreška itd.
Pogreške tijekom izvođenja su one pogreške u PL / SQL bloku za koje treba uključiti odjeljak za rukovanje iznimkama za rukovanje pogreškama. Te pogreške mogu biti izraz SELECT INTO koji ne vraća nijedan redak.
P # 13) Što su COMMIT, ROLLBACK i SAVEPOINT?
Odgovor: COMMIT, SAVEPOINT i ROLLBACK tri su specifikacije transakcija dostupne u PL / SQL-u.
Izjava COMMIT: Kada se izvede DML operacija, on samo manipulira podacima u međuspremniku baze podataka i ove promjene ostaju bez utjecaja na bazu podataka. Da bismo te promjene transakcije spremili / pohranili u bazu podataka, moramo OBVEZATI transakciju. COMMIT transakcija sprema sve preostale promjene od zadnjeg COMMIT i događa se sljedeći postupak
- Otpuštene brave zahvaćenih redova
- Transakcija je označena kao dovršena
- Pojedinosti o transakciji pohranjene su u rječniku podataka.
Sintaksa: POČINITI;
Izjava ROLLBACK: Kada želimo poništiti ili izbrisati sve promjene koje su se dogodile u trenutnoj transakciji do sada, trebamo vratiti transakciju. Drugim riječima, ROLLBACK briše sve izvanredne promjene od zadnjeg COMMIT ili ROLLBACK.
Sintaksa za potpuno vraćanje transakcije:
VRAĆANJE;
Izjava SAVEPOINT: Izjava SAVEPOINT daje ime i označava točku u obradi trenutne transakcije. Promjene i blokade koje su se dogodile prije SAVEPOINT-a u transakciji čuvaju se, dok se one koje se dogode nakon SAVEPOINT-a otpuštaju.
Sintaksa:
SAVEPOINT;
P # 14) Što je mutirajući stol i ograničavajući stol?
Odgovor: Tablica koja se trenutno modificira DML izrazom poput definiranja okidača u tablici poznata je kao Mutirajuća tablica .
Tablica iz koje će se možda trebati čitati zbog referentnog ograničenja integriteta poznata je kao ograničavajući stol .
P # 15) Koji su stvarni i formalni parametri?
Pitanja i odgovori za intervju za programere za sql
Odgovor: Varijable ili izraz koji se naziva parametrima koji se pojavljuju u naredbi poziva procedure poznat je kao Stvarni parametri .
Na primjer: povisiti_sal (emp_num, zasluga + iznos);
Ovdje u gornjem primjeru, emp_num i iznos su dva stvarna parametra.
Varijable koje su deklarirane u zaglavlju procedure i na koje se poziva tijelo tijela pozivaju se kao Formalni parametri .
Na primjer:
POSTUPAK rise_sal (emp_id INTEGER) JE
curr_sal REAL:
……… ..
POČETI
ODABERI sal u cur_sal OD emp WHERE empno = emp_id;
…….
KRAJ raise_sal;
Ovdje u gornjem primjeru, emp_id djeluje kao formalni parametar.
P # 16) Koja je razlika između izjava ROLLBACK i ROLLBACK TO?
Odgovor: Transakcija je u potpunosti završena nakon izjave ROLLBACK, tj. Naredba ROLLBACK u potpunosti poništava transakciju i oslobađa sve brave.
S druge strane, transakcija je i dalje aktivna i izvodi se nakon naredbe ROLLBACK TO, jer poništava samo dio transakcije do zadanog SAVEPOINT-a.
P # 17) Napišite PL / SQL skriptu za prikaz sljedećih serija brojeva: 99,96,93 ...... 9,6,3?
Odgovor
SET SERVER OUTPUT ON DECLARE BEGIN FOR i IN REVERSE 1..99 LOOP IF Mod(i,3) = 0 THEN DBMS_OUTPUT.PUT_LINE(i); END IF; END LOOP; END; /
P # 18) Koja su 3 načina rada parametra?
Odgovor: 3 načina rada parametra su IN, OUT, IN OUT.
To se može objasniti na sljedeći način:
- IN parametri: IN parametri omogućuju vam prosljeđivanje vrijednosti proceduri koja se poziva i mogu se inicijalizirati na zadane vrijednosti. IN parametri djeluju poput konstante i ne mogu mu se dodijeliti nikakve vrijednosti.
- OUT parametri: OUT parametri vraćaju vrijednost pozivatelju i oni moraju biti navedeni. OUT parametri djeluju poput neinicijalizirane varijable i ne mogu se koristiti u izrazu.
- IN OUT parametri: Parametri IN OUT prosljeđuju početne vrijednosti proceduri i vraćaju ažurirane vrijednosti pozivatelju. IN OUT parametri djeluju poput inicijalizirane varijable i treba im dodijeliti vrijednost.
P # 19) Zašto je% ISOPEN uvijek netačan za implicitni kursor?
Odgovor: Implicitni kursor, atribut SQL% ISOPEN uvijek je netačan jer se implicitni kursor otvara za DML izraz i zatvara odmah nakon izvršenja DML izraza.
P # 20) Kada se izvrši DML izraz, u kojim se atributima kursora sprema ishod izjave?
Odgovor: Ishod izjave sprema se u 4 atributa kursora.
Ovi su:
- SQL% NAĐEN
- SQL% NIJE PRONAĐEN
- SQL% ROWCOUNT
- SQL% ISOPEN
P # 21) Koji su načini komentiranja u PL / SQL kodu?
Odgovor: Komentari su tekst koji je priložen uz kod radi poboljšanja čitljivosti i razumijevanja čitatelja. Ovi se kodovi nikad ne izvršavaju.
Postoje dva načina za komentiranje u PL / SQL:
1) Komentar u jednom retku: Ovaj komentar započinje dvostrukim -.
Primjer:
PROGLASITI
broj BROJ (2); - to je lokalna varijabla.
POČETI
2) Višeredni komentar: Ovaj komentar započinje s / * i završava s * /.
Primjer:
POČETI
num: = & p_num; / * Ovo je varijabla hosta koja se koristi u tijelu programa * /
……….
KRAJ
P # 22) Što razumijete pod rukovanjem iznimkama u PL / SQL-u?
Odgovor: Kada se dogodi pogreška u PL / SQL, pojavljuje se iznimka. Drugim riječima, za rješavanje neželjenih situacija kada se PL / SQL skripte neočekivano završe, u program je uključen kôd za rukovanje pogreškama. U PL / SQL-u, sav kôd za rukovanje iznimkama smješten je u odjeljak IZUZETAK.
Postoje 3 vrste IZUZETKA:
- Unaprijed definirane iznimke: Uobičajene pogreške s unaprijed definiranim imenima.
- Nedefinirane iznimke: Rjeđe pogreške bez unaprijed definiranih imena.
- Korisnički definirane iznimke: Ne uzrokujte runtime grešku, već kršite poslovna pravila.
P # 23) Navesti neke unaprijed definirane iznimke?
Odgovor:
Neke od unaprijed definiranih iznimaka su:
- NE_POZNATI PODACI: Izraz SELECT u jednom retku gdje se ne vraćaju podaci.
- TOO_MANY_ROWS: Izraz SELECT jednog retka gdje se vraća više od jednog retka.
- INVALIDNI_KURSOR: Dogodila se ilegalna operacija kursora.
- ZERO_DIVIDE: Pokušaj dijeljenja s nulom.
P # 24) Što su izuzeci PL / SQL kursora?
model vodopada životnog ciklusa razvoja softvera
Odgovor:
Iznimke povezane s PL / SQL kursorima su:
- CURSOR_ALREADY_OPEN
- INVALIDNI_KURSOR
P # 25) Objasnite razliku između pokazivača deklariranog u procedurama i kursora deklariranog u specifikaciji paketa?
Odgovor: Kursor deklariran u postupku tretira se kao lokalni i stoga mu drugi postupci ne mogu pristupiti.
Kursor deklariran u specifikaciji paketa tretira se kao globalni i stoga mu se može pristupiti drugim postupcima.
P # 26) Što su UMJESTO okidača?
Odgovor: INSTEAD OF okidači su okidači napisani posebno za izmjenu pogleda, koji se ne mogu izravno modificirati putem SQL DML izraza.
P # 27) Što su izrazi?
Odgovor: Izrazi su predstavljeni nizom literala i varijabli koje su odvojene operatorima. U PL / SQL-u operacije se koriste za manipulaciju, usporedbu i izračunavanje nekih podataka. Izraz je sastav 'Operatora' i 'Operanda'.
- Operandi: To su argument operatorima. Operandi mogu biti varijabla, poziv funkcije ili konstanta.
- Operateri: Oni određuju radnje koje će se izvršiti na operatorima. Primjer: '+', '*' Itd.
P # 28) Navedite različite vrste izraza s primjerom.
Odgovor: Izrazi mogu biti kako je spomenuto u nastavku:
- Numerički ili aritmetički izrazi: Primjer: 20 * 10+ 15
- Logički izrazi: Primjer: 'Spot' KAO 'sp% t'
- String izrazi: Primjer: DUŽINA (‘NEW YORK’ || ‘NY’)
- Izrazi datuma: Primjer: SYSDATE> TO_DATE (’15 -NOV-16 ’,“ dd-mm-yy ”)
P # 29) Napišite program koji prikazuje upotrebu petlje WHILE za izračunavanje prosjeka unesenih brojeva, a unos više brojeva zaustavlja se unosom broja 0?
Odgovor
DECLARE n NUMBER; avg NUMBER :=0 ; sum NUMBER :=0 ; count NUMBER :=0 ; BEGIN n := &enter_a_number; WHILE(n0) LOOP count := count+1; sum := sum+n; n := &enter_a_number; END LOOP; avg := sum/count; DBMS_OUTPUT.PUT_LINE(‘the average is’||avg); END;
P # 30) Što razumijete pod PL / SQL Records?
Odgovor: PL / SQL zapisi mogu se nazvati zbirkom vrijednosti ili, recimo, skupom više podataka, od kojih je svaki jednostavnijih vrsta i mogu se međusobno povezati kao polja.
Postoje tri vrste zapisa podržane u PL / SQL:
- Zapisi na temelju tablice
- Zapisi na temelju programera
- Zapisi na temelju kursora
Zaključak
PL / SQL je vrlo širok što se tiče učenja i primjene. Nadam se da će vam ova pitanja i odgovori iz intervjua pomoći da ih prođete.
Da biste saznali više o PL SQL-u, pročitajte naš sveobuhvatni članak PL / SQL lekcije .
Sretno učenje !!
Preporučena literatura
- Intervjuirajte pitanja i odgovore
- Pitanja i odgovori za ispitivanje ETL-a
- Top 30+ popularnih pitanja i odgovora za intervju s krastavcima
- Top 30 pitanja i odgovora za intervjue sa SAS-a
- Najčešća pitanja za intervju za Oracle: Oracle Basic, SQL, PL / SQL pitanja
- Top 30 pitanja i odgovora za ispitivanje sigurnosti
- 30 i više pitanja i odgovora za intervju za Scrum [POPIS 2021]
- Top 30 pitanja i odgovori za razgovore s DBMS-om