65 populārākie PL/SQL intervijas jautājumi un atbildes

Lejupielādēt PDF

1) Kas ir PL SQL?

PL SQL ir procesuālā valoda, kurai ir interaktīvs SQL, kā arī procesuālās programmēšanas valodas konstrukcijas, piemēram, nosacītā sazarošanās un iterācija.

2) Atšķiriet % ROWTYPE un TYPE RECORD.

% ROWTYPE tiek izmantots, ja vaicājums atgriež visu tabulas vai skata rindu.

TYPE RECORD, no otras puses, tiek izmantots, ja vaicājums atgriež dažādu tabulu vai skatu kolonnu.

Piem. TYPE r_emp is RECORD (sno smp.smpno %tips, sname smp sname %tips)

e_rec smp % ROWTYPE

Kursors c1 ir atlasīt smpno, nodalījums no smp;

e_rec c1 % ROWTYPE

3) Izskaidrojiet kursora izmantošanu.

Kursors ir privāta SQL zona, no kuras var piekļūt informācijai. Viņiem ir jāapstrādā katra rinda atsevišķi vaicājumiem, kas atgriež vairākas rindas.

4) Parādiet cilpas kursora kodu.

Kursors netieši deklarē %ROWTYPE kā cilpas indeksu. Pēc tam tas atver kursoru, ieraksta vērtību rindas no aktīvās kopas ieraksta laukos un izslēdzas, kad tiek apstrādāti visi ieraksti.

Piem. PAR smp_rec IN C1 LOOP

kopsumma = kopsumma+smp_recsal;

ENDLOOP;

5) Izskaidrojiet datubāzes aktivizētāja pielietojumu.

PL/SQL programmu vienību, kas saistīta ar konkrētu datu bāzes tabulu, sauc par datu bāzes aktivizētāju. To lieto:

1) Audita datu izmaiņas.

2) Pārredzami reģistrējiet notikumus.

3) Ieviest sarežģītus uzņēmējdarbības noteikumus.

4) Uzturiet kopiju tabulas

5) Atvasiniet kolonnu vērtības

6) Īstenot sarežģītas drošības atļaujas

6) Kādi ir divu veidu izņēmumi.

Kļūda, apstrādājot daļu no PL/SQL bloka, tiek saukta par izņēmumu. Tiem ir divi veidi: user_defined un iepriekš definēti.

7) Parādiet dažus iepriekš noteiktus izņēmumus.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

NO_DATA_FOUND

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

INVALID_NUMBER

INVALID_CURSOR

PROGRAM_ERROR

TIMEOUT _ON_RESOURCE

STORAGE_ERROR

LOGON_DENIED

VALUE_ERROR

utt.

8) Paskaidrojiet Raise_application_error.

Tā ir pakotnes DBMS_STANDARD procedūra, kas ļauj izsniegt lietotāja definētus kļūdu ziņojumus no datu bāzes aktivizētāja vai saglabātās apakšprogrammas.

9) Parādiet, kā funkcijas un procedūras tiek sauktas PL SQL blokā.

Funkciju sauc par izteiksmes daļu.

kopā: = aprēķināt_sal ('b644')

Procedūru PL/SQL sauc par paziņojumu.

aprēķināt_bonus ('b644');

10) Paskaidrojiet divas virtuālās tabulas, kas pieejamas datu bāzes aktivizēšanas laikā.

Tabulas kolonnas tiek apzīmētas kā THEN.kolonnas_nosaukums un TAGAD.kolonnas_nosaukums.

Ar INSERT saistītiem aktivizētājiem NOW.column_name vērtības ir pieejamas tikai.

DELETE saistītiem aktivizētājiem vērtības THEN.column_name ir pieejamas tikai.

Ar UPDATE saistītiem aktivizētājiem ir pieejamas abas tabulas slejas.

11) Kādi noteikumi ir jāpiemēro NULL salīdzināšanas laikā?

1) NULL nekad nav PATIESA vai nepatiesa

2) NULL nevar būt vienāds vai nevienāds ar citām vērtībām

3) Ja izteiksmes vērtība ir NULL, tad pati izteiksme tiek vērtēta kā NULL, izņemot saiknes operatoru (||)

12) Kā tiek apkopots PL SQL process?

Apkopošanas process ietver sintakses pārbaudes, saistīšanas un p-koda ģenerēšanas procesus.

Sintakses pārbaude pārbauda PL SQL kodus, vai nav apkopošanas kļūdu. Kad visas kļūdas ir izlabotas, mainīgajiem, kuriem ir dati, tiek piešķirta krātuves adrese. To sauc par iesiešanu. P kods ir instrukciju saraksts PL SQL dzinējam. P kods tiek saglabāts nosaukto bloku datu bāzē un tiek izmantots nākamajā reizē, kad tas tiek izpildīts.

13) Atšķirt sintakses un izpildlaika kļūdas.

Sintakses kļūdu var viegli noteikt PL/SQL kompilators. Piemēram, nepareiza pareizrakstība.

Izpildlaika kļūda tiek apstrādāta, izmantojot PL/SQL bloka izņēmumu apstrādes sadaļu. Piemēram, SELECT INTO, kas neatgriež nevienu rindu.

14) Izskaidrojiet apņemšanos, atcelšanu un saglabāšanas punktu.

COMMIT paziņojumam ir taisnība:

  • Citi lietotāji var redzēt darījuma veiktās datu izmaiņas.
  • Ar darījumu iegūtās slēdzenes tiek atbrīvotas.
  • Darījuma veiktais darbs kļūst pastāvīgs.

ROLLBACK paziņojums tiek izdots, kad darījums beidzas, un ir taisnība.

  • Pārejas laikā paveiktais darbs tiek atsaukts tā, it kā tas nekad nebūtu izdots.
  • Visas slēdzenes, kas iegūtas ar darījumu, tiek atbrīvotas.

Tas atceļ visu lietotāja paveikto darījumā. Izmantojot SAVEPOINT, var atsaukt tikai daļu no darījuma.

15) Definējiet netiešus un skaidrus kursorus.

Pēc noklusējuma kursors ir netiešs. Lietotājs nevar kontrolēt vai apstrādāt informāciju, kas atrodas šajā kursorā.

Ja vaicājums atgriež vairākas datu rindas, programma definē skaidru kursoru. Tas ļauj lietojumprogrammai apstrādāt katru rindu secīgi, kad kursors to atgriež.

16) Paskaidrojiet mutācijas tabulas kļūdu.

Tas notiek, kad aktivizētājs mēģina atjaunināt pašreiz izmantoto rindu. Tas tiek labots, izmantojot skatus vai pagaidu tabulas, tāpēc datu bāze izvēlas vienu un atjaunina otru.

17) Kad ir vajadzīgs deklarācijas paziņojums?

DECLARE paziņojumu izmanto PL SQL anonīmi bloki, piemēram, ar atsevišķām, nesaglabātām procedūrām. Ja tas tiek izmantots, tam vispirms jābūt atsevišķā failā.

18) Cik aktivizētāju var piemērot tabulai?

Vienai tabulai var piemērot ne vairāk kā 12 aktivizētājus.

19) Kāda ir SQLCODE un SQLERRM nozīme?

SQLCODE atgriež pēdējās radušās kļūdas kļūdu skaita vērtību, turpretī SQLERRM atgriež ziņojumu par pēdējo kļūdu.

20) Ja kursors ir atvērts, kā to var atrast PL SQL blokā?

var izmantot kursora statusa mainīgo %ISOPEN.

21) Parādiet divus PL/SQL kursora izņēmumus.

Cursor_Already_Open

Invaid_cursor

22) Kādi operatori nodarbojas ar NULL?

NVL konvertē NULL uz citu norādīto vērtību.

var: = NVL (var2, 'Hi');

IS NULL un IS NOT NULL var izmantot, lai īpaši pārbaudītu, vai mainīgā vērtība ir NULL.

23) Vai SQL*Plus ir arī PL/SQL dzinējs?

Nē, SQL*Plus tajā nav iestrādāts PL/SQL Engine. Tādējādi viss PL/SQL kods tiek nosūtīts tieši uz datu bāzes dzinēju. Tas ir daudz efektīvāk, jo katrs paziņojums netiek atsevišķi noņemts.

24) Kādas paketes ir pieejamas PL SQL izstrādātājiem?

DBMS_ iepakojumu sērija, piemēram, DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.

25) Paskaidrojiet sprūda 3 pamatdaļas.

  • Aktivizējošs paziņojums vai notikums.
  • Ierobežojums
  • Darbība

26) Kādas ir rakstzīmju funkcijas?

INITCAP, UPPER, SUBSTR, LOWER un LENGTH ir rakstzīmju funkcijas. Grupu funkcijas sniedz rezultātus, pamatojoties uz rindu grupām, nevis atsevišķām rindām. Tie ir MAX, MIN, AVG, COUNT un SUM.

27) Paskaidrojiet TTITLE un BTITLE.

Komandas TTITLE un BTITLE, kas kontrolē pārskatu galvenes un kājenes.

28) Parādiet PL/SQL kursora atribūtus.

%ISOPEN: pārbauda, ​​vai kursors ir atvērts vai nē

%ROWCOUNT: atjaunināto, dzēsto vai ielādēto rindu skaits.

%FOUND: pārbauda, ​​vai kursors ir ielādējis kādu rindu. Tā ir taisnība, ja tiek ielādētas rindas

%NOT FOUND: pārbauda, ​​vai kursors ir ielādējis kādu rindu. Tā ir taisnība, ja rindas netiek ielādētas.

29) Kas ir krustojums?

Intersect ir divu tabulu produkts, un tajā ir uzskaitītas tikai atbilstošas ​​rindas.

30) Kādas ir secības?

Secības tiek izmantotas, lai ģenerētu kārtas numurus bez bloķēšanas. Tās trūkums ir tāds, ka kārtas numurs tiek zaudēts, ja darījums tiek atcelts.

31) Kā jūs atsaucaties uz kolonnu vērtībām PIRMS un PĒC tam, kad esat ievietojis un izdzēsis aktivizētājus?

Izmantojot atslēgvārdu “new.column name”, aktivizētāji var atsaukties uz kolonnu vērtībām pēc jaunas kolekcijas. Izmantojot atslēgvārdu “old.column name”, viņi var atsaukties uz sleju vērtībām pēc vecās kolekcijas.

32) Kādi ir SYSDATE un USER atslēgvārdu lietojumi?

SYSDATE attiecas uz pašreizējo servera sistēmas datumu. Tā ir pseido kolonna. USER ir arī pseido kolonna, bet attiecas uz pašreizējo lietotāju, kurš ir pieteicies sesijā. Tos izmanto, lai uzraudzītu tabulā notiekošās izmaiņas.

33) Kā ROWID palīdz ātrāk izpildīt vaicājumu?

ROWID ir rindas loģiskā adrese, tā nav fiziska kolonna. Tas veido datu bloka numuru, faila numuru un rindas numuru datu blokā. Tādējādi I/O laiks tiek minimizēts, lai izgūtu rindu, un tiek iegūts ātrāks vaicājums.

34) Kādam nolūkam tiek izmantotas datu bāzes saites?

Datu bāzes saites tiek veidotas, lai veidotu saziņu starp dažādām datu bāzēm vai dažādām vidēm, piemēram, testēšanu, izstrādi un ražošanu. Datu bāzes saites ir tikai lasāmas, lai piekļūtu arī citai informācijai.

35) Ko dara kursora iegūšana?

Iegūstot kursoru, tiek lasīts rezultāts Iestatīt rindu pa rindai.

36) Ko dara kursora aizvēršana?

Aizverot kursoru, tiek notīrīta privātā SQL zona, kā arī atcelta atmiņas sadale

37) Izskaidrojiet vadības faila lietojumu.

Tas ir binārs fails. Tas reģistrē datu bāzes struktūru. Tas ietver vairāku žurnālfailu atrašanās vietas, nosaukumus un laika zīmogus. Tos var uzglabāt dažādās vietās, lai palīdzētu izgūt informāciju, ja viens fails tiek bojāts.

38) Paskaidrojiet konsekvenci

Konsekvence rāda, ka dati netiks atspoguļoti citiem lietotājiem, kamēr dati nebūs apņemti, tādējādi saglabājot konsekvenci.

39) Atšķirība starp anonīmiem blokiem un apakšprogrammām.

Anonīmi bloki ir nenosaukti bloki, kas nekur netiek saglabāti, kamēr apakšprogrammas tiek apkopotas un saglabātas datu bāzē. Tie tiek apkopoti izpildlaika laikā.

40) Atšķirība starp DECODE un CASE.

DECODE un CASE paziņojumi ir ļoti līdzīgi, taču CASE ir paplašināta DECODE versija. DECODE neļauj pieņemt lēmumus savā vietā.

izvēlieties atšifrēt (kopsumma = 12000, 'augsts', 10000, 'vidējs') kā decode_tesr no smp kur smpno in (10,12,14,16);

Šis paziņojums atgriež kļūdu.

CASE tiek tieši izmantots PL SQL, bet DECODE tiek izmantots PL SQL tikai caur SQL.

41) Paskaidrojiet autonomo darījumu.

Autonoms darījums ir galvenā vai mātes darījuma neatkarīgs darījums. Tas nav ligzdots, ja to sāk cits darījums.

Ir vairākas situācijas, kurās var izmantot autonomus darījumus, piemēram, notikumu reģistrēšanu un auditu.

42) Atšķirt SGA un PGA.

SGA apzīmē sistēmas globālo apgabalu, bet PGA - programmas vai procesa globālo zonu. PGA tiek piešķirts tikai 10% RAM lielums, bet SGA tiek piešķirts 40% RAM lielums.

43) Kāda ir Pre_defined_functions atrašanās vieta.

Tie tiek glabāti standarta iepakojumā ar nosaukumu “Funkcijas, procedūras un paketes”

44) Paskaidrojiet polimorfismu PL SQL.

Polimorfisms ir OOP iezīme. Tā ir spēja izveidot mainīgo, objektu vai funkciju ar vairākām formām. PL/SQL atbalsta polimorfismu, kas izpaužas kā programmas vienības pārslodze dalībnieka funkcijas vai paketes iekšienē .. Pārslodzes laikā jāizvairās no nepārprotamas loģikas.

45) Kādi ir MERGE lietojumi?

MERGE tiek izmantots, lai apvienotu vairākus DML paziņojumus vienā.

Sintakse: sapludināt tablename

izmantojot (vaicājums)

ieslēgts (pievienošanās nosacījums)

kad nesaskan tad

Komanda [ievietot/atjaunināt/dzēst]

kad saskanēja tad

Komanda [ievietot/atjaunināt/dzēst]

46) Vai 2 vaicājumus var izpildīt vienlaicīgi izplatītā datu bāzu sistēmā?

Jā, tos var izpildīt vienlaikus. Viens vaicājums vienmēr ir neatkarīgs no otrā vaicājuma izplatītā datu bāzes sistēmā, kuras pamatā ir 2 fāžu apņemšanās.

47) Paskaidrojiet Raise_application_error.

Tā ir pakotnes DBMS_STANDARD procedūra, kas ļauj izsniegt lietotāja definētus kļūdas ziņojumus no datu bāzes aktivizētāja vai saglabātās apakšprogrammas.

48) Kas ir notikuma parametrs, lai gan atgriešanās paziņojumu var izmantot arī pl/sql?

Out parametri pieļauj vairāk nekā vienu vērtību zvanīšanas programmā. Out parametrs nav ieteicams funkcijās. Funkciju vietā var izmantot procedūras, ja ir vajadzīgas vairākas vērtības. Tādējādi šīs procedūras tiek izmantotas Out parametru izpildei.

49) Kā jūs pārvērstu datumu Juliāna datuma formātā?

Mēs varam izmantot J formāta virkni:

SQL> izvēlieties to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') kā julian no dual;

JULIANS

50) Paskaidrojiet SPOOL

Spool komanda var izdrukāt SQL paziņojumu izvadi failā.

spool/tmp/sql_outtxt

izvēlieties smp_name, smp_id no smp kur dept = 'konti';

spole nost;

51) Miniet, no kā sastāv PL/SQL pakete?

PL/SQL pakotne sastāv no

  • PL/SQL tabula un ierakstu TYPE paziņojumi
  • Procedūras un funkcijas
  • Kursori
  • Mainīgie (tabulas, skalāri, ieraksti utt.) Un konstantes
  • Izņēmumu nosaukumi un pragmas kļūdas numura saistīšanai ar izņēmumu
  • Kursori

52) Miniet, kādas ir PL/SQL pakotņu priekšrocības?

Tas nodrošina vairākas priekšrocības, piemēram

  • Piespiedu informācijas slēpšana: Tas piedāvā brīvību izvēlēties, vai saglabāt datus privātus vai publiskus
  • Dizains no augšas uz leju: Jūs varat noformēt saskarni ar kodu, kas paslēpts iepakojumā, pirms jūs faktiski ieviesāt moduļus
  • Objekta noturība: Pakotnes specifikācijā deklarētie objekti darbojas kā globāli dati par visiem lietojumprogrammas PL/SQL objektiem. Jūs varat modificēt pakotni vienā modulī un pēc tam šīs izmaiņas atsaukties uz citu moduli
  • Objektorientēts dizains: Pakotne sniedz izstrādātājiem stingru kontroli pār to, kā var izmantot paketē esošos moduļus un datu struktūras
  • Darījuma integritātes garantēšana: Tas nodrošina darījuma integritātes līmeni
  • Veiktspējas uzlabošana: RDBMS automātiski izseko visu datu bāzē saglabāto programmas objektu derīgumu un uzlabo pakešu veiktspēju.

53) Miniet, kādas ir dažādas metodes PL/SQL koda izsekošanai?

Izsekošanas kods ir būtiska metode koda veiktspējas mērīšanai izpildlaika laikā. Dažādas izsekošanas metodes ietver

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION un DBMS_MONITOR
  • trcsess un tkproof komunālie pakalpojumi

54) Miniet, ko dara hierarhiskais profilētājs?

Hierarhiskais profilētājs varētu profilēt PL/SQL veiktos zvanus, izņemot plaisu starp nepilnībām un veiktspējas izsekošanas cerībām. Hierarhiskā profilētāja efektivitāte ietver

  • Atsevišķi ziņojumi par SQL un PL/SQL laika patēriņu
  • Pārskatos tiek uzskaitīti atsevišķi apakšprogrammu zvani, kas veikti PL/SQL, un laiks, kas pavadīts ar katru apakšprogrammas zvanu
  • Vairāki interaktīvi analītiskie pārskati HTML formātā, izmantojot komandrindas utilītu
  • Efektīvāks par parastajiem profilēšanas un citiem izsekošanas pakalpojumiem

55) Miniet, ko PLV ziņojums ļauj jums darīt?

PLV ziņojums ļauj jums

  • Piešķirt atsevišķu īsziņu PL/SQL tabulas norādītajai rindai
  • Tas izgūst ziņas tekstu pēc numura
  • Tas automātiski aizstāj jūsu ziņojumus ar standarta Oracle kļūdu ziņojumiem ar ierobežojuma pārslēgšanu
  • Partijas ielādes ziņojumu numuri un teksts no datu bāzes tabulas tieši PLV ​​msg PL/SQL tabula

56) Miniet, ko piedāvā PLV (PL/Vision) pakete?

  • Nulles aizvietošanas vērtība
  • Apgalvojumu rutīnas kopums
  • Dažādi komunālie pakalpojumi
  • Konstantu kopums, ko izmanto visā PL redzējumā
  • Iepriekš definēti datu tipi
  • 57) Miniet, kāda ir PLVprs un PLVprsps izmantošana?
  • PLVprs: Tas ir PL/SQL virkņu parsēšanas paplašinājums, un tas ir zemākais virkņu parsēšanas funkcionalitātes līmenis
  • PLVprsps: Tā ir augstākā līmeņa pakete, lai parsētu PL/SQL avota kodu atsevišķos atomos. Tas paļaujas uz citām parsēšanas pakotnēm, lai paveiktu darbu.

58) Paskaidrojiet, kā jūs varat iepriekš kopēt failu uz faila saturu un failu uz PL/SQL tabulu PL/SQL?

Ar vienu programmas zvanu - ' fcopy procedūra ”, Jūs varat kopēt viena faila pilnu saturu citā failā. Lai kopētu faila saturu tieši PL/SQL tabulā, varat izmantot programmu ' file2pstab ' .

59) Paskaidrojiet, kā izņēmumu apstrāde tiek veikta iepriekš PL/SQL?

Izņēmumu apstrādei PL/SQl nodrošina efektīvu spraudni PLVexc. PLVexc atbalsta četras dažādas izņēmumu apstrādes darbības.

  • Turpiniet apstrādi
  • Ierakstiet un pēc tam turpiniet
  • Apturēt apstrādi
  • Ierakstiet un pēc tam pārtrauciet apstrādi

Izņēmumiem, kas atkārtojas, varat izmantot priekšrakstu RAISE.

60) Miniet, ar kādu problēmu varētu saskarties, rakstot žurnāla informāciju datu bāzes tabulā PL/SQL?

Rakstot žurnāla informāciju datu bāzes tabulā, problēma, ar kuru saskaraties, ir tā, ka informācija ir pieejama tikai tad, kad datu bāzei ir pievienotas jaunās rindas. Tā var būt problēma, jo šāds PLVlog parasti tiek izvietots, lai izsekotu kļūdas, un daudzos šādos gadījumos pašreizējais darījums neizdotos vai citādi būtu jāatceļ.

61) Nosauciet, kāda ir funkcija, kas tiek izmantota PL/SQL tabulas žurnāla pārsūtīšanai uz datu bāzes tabulu?

Lai pārsūtītu PL/SQL tabulu, reģistrējiet datu bāzes žurnāla tabulas funkciju 'PROCEDŪRA ps2db' tiek izmantots.

62) Kad jums ir jāizmanto PLVlog noklusējuma 'atcelšana' saglabāšanas punktā?

PLVlog noklusējuma “atcelšanas uz” saglabāšanas punktu izmanto, ja lietotāji ir ieslēguši atcelšanas darbību un nav norādījuši alternatīvu glābšanas punktu zvanā uz put_line. Noklusējuma saglabāšanas punkts tiek inicializēts kā c none konstante.

63) Kāpēc PLVtab tiek uzskatīts par vienkāršāko veidu, kā piekļūt PL/SQL tabulai?

PL/SQL tabula ir vistuvāk PL/SQL masīviem, un, lai piekļūtu šai tabulai, vispirms ir jāpaziņo tabulas tips, un pēc tam ir jādeklarē pati PL/SQL tabula. Bet, izmantojot PLVtab, jūs varat izvairīties no sava PL/SQL tabulas tipa definēšanas un atvieglot piekļuvi PL/SQL datu tabulai.

64) Miniet, ko PLVtab ļauj jums darīt, parādot PL/SQL tabulu saturu?

Rādot PL/SQL tabulu saturu, PLVtab ļauj veikt šādas darbības

  • Parādiet vai izslēdziet tabulas galveni
  • Parādiet vai izslēdziet tabulas vērtību rindu numurus
  • Pirms katras tabulas rindas parādiet prefiksu

65) Paskaidrojiet, kā jūs varat saglabāt vai ievietot ziņojumu tabulā?

Lai tabulā saglabātu ziņojumu, to var izdarīt divos veidos

  • Ielādējiet atsevišķus ziņojumus ar zvaniem uz add_text procedūru
  • Ielādējiet ziņojumu kopas no datu bāzes tabulas, izmantojot load_from_dbms procedūru

66) Miniet, kāda ir funkcijas “moduļa procedūra” izmantošana PL/SQL?

“Moduļa procedūra” ļauj pārvērst visas koda rindas noteiktā programmas vienībā ar vienu procedūras izsaukumu. Moduļiem ir trīs argumenti

  • modulis_in
  • cor_in
  • Last_module_in

67) Miniet, ko PLVcmt un PLVrb dara PL/SQL?

PL/Vision piedāvā divas paketes, kas palīdz pārvaldīt darījumu apstrādi PL/SQL lietojumprogrammā. Tas ir PLVcmt un PLVrb.

  • PLVcmt: PLVcmt pakete aptver loģiku un sarežģītību saistību apstrādes jomā
  • PLVrb: Tas nodrošina programmatisku saskarni, lai atceltu darbības PL/SQL