65 populārākie PL / SQL intervijas jautājumi un amp; Atbildes

Anonim

Lejupielādēt PDF

1) Kas ir PL SQL?

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

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

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

Savukārt TYPE RECORD tiek izmantots, kad vaicājums atgriež dažādu tabulu vai skatu kolonnu.

Piem. TYPE r_emp ir RECORD (sno smp.smpno% type, sname smp sname% type)

e_rec smp% ROWTYPE

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

e_rec c1% ROWTYPE

3) Paskaidrojiet kursora lietojumu.

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

4) Parādīt cilpas kursora kodu.

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

Piem. PAR smp_rec C1 LOOP

totalsal = totalal + smp_recsal;

ENDLOOP;

5) Paskaidrojiet datu bāzes aktivizētāja izmantojumu.

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

1) Revīzijas datu izmaiņas.

2) Reģistrējiet notikumus pārredzami.

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

4) Uzturēt kopiju tabulas

5) Iegūstiet kolonnu vērtības

6) Īstenot sarežģītas drošības autorizācijas

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

Kļūdas, apstrādājot daļu no PL / SQL bloka, sauc par izņēmumu. Viņiem ir divi veidi: user_defined un predefined.

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) Izskaidrojiet Raise_application_error.

Tā ir pakotnes DBMS_STANDARD procedūra, kas ļauj izdot user_defined kļūdu ziņojumus no datu bāzes trigera vai glabātās apakšprogrammas.

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

Funkciju sauc par izteiksmes daļu.

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

Procedūra tiek izsaukta kā paziņojums PL / SQL.

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

10) Izskaidrojiet divas virtuālās tabulas, kas pieejamas datubāzes trigera izpildes laikā.

Tabulas kolonnas tiek apzīmētas ar THEN.column_name un NOW.column_name.

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

Ar 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 kolonnas.

11) Kādi ir noteikumi, kas jāpiemēro NULL, veicot salīdzinājumus?

1) NULL nekad nav PATIESA vai PATIESA

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 konkatenācijas operatoru (||)

12) Kā tiek apkopots PL SQL process?

Kompilācijas process ietver sintakses pārbaudes, iesiešanas un p-koda ģenerēšanas procesus.

Sintakses pārbaude pārbauda, ​​vai PL SQL kodos nav sastādīšanas kļūdu. Kad visas kļūdas ir izlabotas, mainīgajiem, kas satur datus, tiek piešķirta krātuves adrese. To sauc par Iesiešanu. P-kods ir PL SQL dzinēja instrukciju saraksts. P-kods tiek glabāts nosaukto bloku datu bāzē un tiek izmantots nākamajā izpildes reizē.

13) Diferencējiet 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 izņēmumu apstrādes sadaļu PL / SQL blokā. Piemēram, SELECT INTO priekšraksts, kas neatgriež nevienu rindu.

14) Paskaidrojiet Commit, Rollback un Savepoint.

COMMIT paziņojumam ir taisnība:

  • Citi lietotāji var redzēt datu izmaiņas, kas veiktas ar darījumu.
  • Darījuma rezultātā iegūtās slēdzenes tiek atbrīvotas.
  • Darījuma paveiktais darbs kļūst pastāvīgs.

ROLLBACK izraksts tiek izsniegts, kad darījums beidzas, un tālāk ir taisnība.

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

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

15) Definējiet netiešos un tiešos 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 tabulas mutācijas kļūdu.

Tas notiek, kad sprūda mēģina atjaunināt rindu, kuru tā pašlaik izmanto. To nosaka, izmantojot skatus vai pagaidu tabulas, tāpēc datu bāze izvēlas vienu un atjaunina otru.

17) Kad ir nepieciešams deklarēt paziņojumu?

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

18) Cik aktivizētājus 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ž kļūdas skaita vērtību par pēdējo radušos kļūdu, savukārt SQLERRM atgriež ziņojumu par pēdējo kļūdu.

20) Ja kursors ir atvērts, kā mēs varam atrast PL SQL blokā?

var izmantot% ISOPEN kursora statusa mainīgo.

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

Kursors_Already_Open

Invaid_cursor

22) Kādi operatori nodarbojas ar NULL?

NVL pārveido NULL par citu norādītu 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 Engine?

Nē, SQL * Plus 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_ pakotņu 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 3 sprūda 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 visas rakstzīmju funkcijas. Grupu funkcijas dod rezultātus, pamatojoties uz rindu grupām, atšķirībā no atsevišķām rindām. Tie ir MAX, MIN, AVG, COUNT un SUM.

27) Paskaidrojiet TTITLE un BTITLE.

TTITLE un BTITLE komandas, kas kontrolē pārskata galvenes un kājenes.

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

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

% ROWCOUNT: atjauninātu, dzēstu vai ienestu rindu skaits.

% FOUND: Pārbauda, ​​vai kursors ir ienesis kādu rindu. Tā ir taisnība, ja tiek ienestas rindas

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

29) Kas ir krustojums?

Krustojums ir divu tabulu reizinājums, un tajā ir norādītas tikai atbilstošās rindas.

30) Kas 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 atsauktos kolonnu vērtības PIRMS un PĒC aktivizētāju ievietošanas un dzēšanas?

Izmantojot atslēgvārdu "new.column name", aktivizētāji var norādīt kolonnu vērtības pēc jaunas kolekcijas. Izmantojot atslēgvārdu "old.column name", viņi var norādīt kolonnu vērtības pēc vecās kolekcijas.

32) Kāda ir SYSDATE un USER atslēgvārdu izmantošana?

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. Tajā ir datu bloka numurs, faila numurs un rindas numurs datu blokā. Tādējādi I / O laiks tiek samazināts līdz rindas izgūšanai un tiek iegūts ātrāks vaicājums.

34) Kāpēc tiek izmantotas datu bāzes saites?

Datu bāzes saites tiek izveidotas, lai izveidotu 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 ienešana?

Ienesot kursoru, rindas pa rindai tiek lasīts Rezultāta iestatījums.

36) Ko dara kursora aizvēršana?

Kursora aizvēršana notīra privāto SQL zonu, kā arī atdala atmiņu

37) Paskaidrojiet 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 iegū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 nav apņēmušies, tāpēc tiek saglabāta konsekvence.

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

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

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

DECODE un CASE paziņojumi ir ļoti līdzīgi, bet CASE ir paplašināta DECODE versija. DECODE vietā nav atļauts pieņemt lēmumus.

atlasiet atšifrēšanu (totalsal = 12000, 'high', 10000, 'medium') kā decode_tesr no smp, kur smpno ir (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.

Autonomais darījums ir neatkarīgs galvenā vai mātes darījuma darījums. Tas nav ligzdots, ja to sāk ar citu darījumu.

Pastāv vairākas situācijas, lai izmantotu autonomus darījumus, piemēram, notikumu reģistrēšanu un auditēšanu.

42) nošķiriet SGA no PGA.

SGA nozīmē Sistēmas globālā zona, bet PGA - Programmu vai procesu globālā zona. 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 paketē ar nosaukumu "Funkcijas, procedūras un paketes"

44) Izskaidrojiet 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 kā programmas vienības pārslodzi dalībnieka funkcijas vai paketes iekšienē ... Pārslodzes laikā ir jāizvairās no nepārprotamas loģikas.

45) Kādi ir MERGE izmantošanas veidi?

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

Sintakse: saplūst tabename

izmantojot (vaicājums)

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

kad tad nav saskaņots

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

kad toreiz sakrita

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

46) Vai 2 vaicājumus var vienlaikus izpildīt sadalītās datu bāzes sistēmā?

Jā, tos var izpildīt vienlaikus. Viens vaicājums vienmēr ir neatkarīgs no otrā vaicājuma izplatītās datu bāzes sistēmā, pamatojoties uz 2 fāžu saistību izpildi.

47) Izskaidrojiet Raise_application_error.

Tā ir pakotnes DBMS_STANDARD procedūra, kas ļauj izdot user_defined kļūdas ziņojumus no datu bāzes trigera vai saglabātās apakšprogrammas.

48) Kādu parametru out izmanto, lai arī atgriešanās paziņojumu var izmantot arī pl / sql?

Out parametri izsaucēja programmā ļauj vairāk nekā vienu vērtību. Funkcija Out nav ieteicama. Funkciju vietā var izmantot procedūras, ja ir nepieciešamas vairākas vērtības. Tādējādi šīs procedūras tiek izmantotas Out parametru izpildei.

49) Kā jūs konvertētu datumu Jūlija datuma formātā?

Mēs varam izmantot J formāta virkni:

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

JŪLIJS

50) Paskaidrojiet SPOOL

Spool komanda var izdrukāt sql pārskatu izvadi failā.

spole / tmp / sql_outtxt

atlasiet smp_name, smp_id no smp, kur dept = 'konti';

spole nost;

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

PL / SQL pakete sastāv no

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

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

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

  • Piespiedu informācijas slēpšana: tā piedāvā brīvību izvēlēties, vai datus saglabāt privātus vai publiskus
  • No augšas uz leju noformējums: Jūs varat noformēt saskarni kodā, kas paslēpts paketē, pirms paši moduļus esat ieviesuši
  • Objekta noturība: paketes specifikācijā deklarētie objekti uzvedas kā globālie dati visiem lietojumprogrammas PL / SQL objektiem. Jūs varat modificēt paketi vienā modulī un pēc tam šīs izmaiņas norādīt uz citu moduli
  • Uz objektu orientēts dizains: pakete ļauj izstrādātājiem stingri sekot tam, kā var izmantot paketē esošos moduļus un datu struktūras
  • Darījumu integritātes garantēšana: tas nodrošina darījumu integritātes līmeni
  • Veiktspējas uzlabošana: RDBMS automātiski izseko visu datu bāzē saglabāto programmu objektu derīgumu un uzlabo pakotņu veiktspēju.

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

Koda izsekošana ir izšķiroša tehnika 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) Pieminiet, ko dara hierarhiskais profilētājs?

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

  • Atšķirīgi ziņojumi par SQL un PL / SQL laika patēriņu
  • Pārskatos tiek skaitīti atsevišķi apakšprogrammu izsaukumi, kas veikti PL / SQL, un laiks, kas pavadīts ar katru apakšprogrammas izsaukumu
  • Vairāki interaktīvi analīzes pārskati HTML formātā, izmantojot komandrindas utilītu
  • Efektīvāka par parasto profilētāju un citām izsekošanas utilītprogrammām

55) Pieminiet, ko PLV msg ļauj jums darīt?

PLV ziņa ļauj jums

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

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

  • Null aizstāšanas vērtība
  • Apgalvošanas kārtības kopums
  • Dažādi komunālie pakalpojumi
  • Konstantu kopa, ko izmanto visā PL redzamībā
  • Iepriekš definēti datu tipi
  • 57) Pieminiet, kāda ir PLVprs un PLVprsps izmantošana?
  • PLVprs: Tas ir virknes parsēšanas paplašinājums PL / SQL, un tas ir zemākais virkņu parsēšanas funkcionalitātes līmenis
  • PLVprsps: PL / SQL avota koda parsēšana atsevišķos atomos ir augstākā līmeņa pakete. Lai veiktu darbu, tā paļaujas uz citām parsēšanas paketēm.

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

Izmantojot vienu programmas izsaukumu - " fcopy procedure", jūs varat kopēt visu viena faila saturu citā failā. Lai kopētu faila saturu tieši PL / SQL tabulā, varat izmantot programmu " file2pstab" .

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

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

  • Turpiniet apstrādi
  • Pierakstiet un pēc tam turpiniet
  • Apturēt apstrādi
  • Reģistrē un pēc tam pārtrauc apstrādi

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

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

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

61) Pieminiet, kāda ir funkcija, kas tiek izmantota, lai PL / SQL tabulas žurnālu pārsūtītu uz datu bāzes tabulu?

PL / SQL tabulas žurnāla pārsūtīšanai tiek izmantota datu bāzes žurnāla tabulas funkcija "PROCEDURE ps2db" .

62) Kad jums jāizmanto noklusējuma PLVlog saglabāšanas punkts?

Noklusējuma PLVlog saglabāšanas punkts tiek izmantots, kad lietotāji ir ieslēdzuši atcelšanas darbību un nav norādījuši alternatīvu saglabāšanas punktu izsaukumā put_line. Noklusējuma savepunkts tiek inicializēts 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ādeklarē tabulas tips un pēc tam jādeklarē pati PL / SQL tabula. Bet, izmantojot PLVtab, jūs varat izvairīties no sava PL / SQL tabulas veida noteikšanas un padarīt PL / SQL datu tabulas piekļuvi viegli.

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

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

  • Parādiet vai nomāciet tabulas galveni
  • Parādiet vai izslēdziet tabulas vērtību rindu numurus
  • Parādiet prefiksu pirms katras tabulas rindas

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

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

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

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

"Moduļa procedūra" ļauj pārveidot visas koda rindas noteiktā programmas vienībā ar vienu procedūras izsaukumu. Moduļiem ir trīs argumenti

  • module_in
  • cor_in
  • Last_module_in

67) Pieminiet, 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, lai risinātu saistību apstrādi
  • PLVrb: Tas nodrošina programmatisku saskarni, lai atjaunotu darbības PL / SQL