Topp 65 PL / SQL-intervjufrågor & Svar

Anonim

Ladda ner PDF

1) Vad är PL SQL?

PL SQL är ett procedurspråk som har interaktiv SQL, samt procedurella programmeringsspråkkonstruktioner som villkorlig förgrening och iteration.

2) Gör skillnad på% ROWTYPE och TYPE RECORD.

% ROWTYPE används när en fråga returnerar en hel rad i en tabell eller vy.

TYPRECORD används däremot när en fråga returnerar kolumn med olika tabeller eller vyer.

T.ex. TYP r_emp är RECORD (sno smp.smpno% type, sname smp sname% type)

e_rec smp% ROWTYPE

Markören c1 är välj smpno, avdelning från smp;

e_rec c1% ROWTYPE

3) Förklara hur markören används.

Cursor är ett namngivet privat område i SQL där information kan nås. De måste bearbeta varje rad individuellt för frågor som returnerar flera rader.

4) Visa kod för en markör för loop.

Markören förklarar% ROWTYPE som loopindex implicit. Den öppnar sedan en markör, får värderader från den aktiva uppsättningen i postens fält och stängs när alla poster bearbetas.

T.ex. FÖR smp_rec I C1 LOOP

total = total + smp_recsal;

ENDLOOP;

5) Förklara användningen av databasutlösare.

En PL / SQL-programenhet associerad med en viss databastabell kallas en databasutlösare. Den används för:

1) Ändringar av granskningsdata.

2) Logga händelser transparent.

3) Tillämpa komplexa affärsregler.

4) Underhåll repliktabeller

5) Hämta kolumnvärden

6) Implementera komplexa säkerhetsbehörigheter

6) Vilka är de två typerna av undantag?

Felhantering av en del av PL / SQL-blocket heter Exception. De har två typer: användardefinierad och fördefinierad.

7) Visa några fördefinierade undantag.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

INGEN INFORMATION HITTAD

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

OGILTIGT NUMMER

INVALID_CURSOR

PROGRAM_ERROR

TIMEOUT _ON_RESOURCE

STORAGE_ERROR

LOGON_DENIED

VALUE_ERROR

etc.

8) Förklara Raise_application_error.

Det är en procedur för paketet DBMS_STANDARD som tillåter utfärdande av användardefinierade felmeddelanden från databasutlösare eller lagrat underprogram.

9) Visa hur funktioner och procedurer anropas i ett PL SQL-block.

Funktion kallas som en del av ett uttryck.

totalt: = beräkna_sal ('b644')

Procedur kallas som ett uttalande i PL / SQL.

beräkna_bonus ('b644');

10) Förklara två virtuella tabeller som är tillgängliga när databasutlösaren körs.

Tabellkolumner kallas THEN.column_name och NOW.column_name.

För INSERT-relaterade utlösare är värdena NOW.column_name endast tillgängliga.

För DELETE-relaterade utlösare är THEN.column_name-värden endast tillgängliga.

För UPDATE-relaterade utlösare är båda tabellkolumnerna tillgängliga.

11) Vilka regler ska tillämpas på NULLs när man gör jämförelser?

1) NULL är aldrig SANN eller FALSK

2) NULL kan inte vara lika eller ojämlik med andra värden

3) Om ett värde i ett uttryck är NULL, utvärderas själva uttrycket till NULL förutom sammankopplingsoperator (||)

12) Hur sammanställs en process för PL SQL?

Sammanställningsprocessen inkluderar syntaxkontroll, bindning och p-kodgenereringsprocesser.

Syntaxkontroll kontrollerar PL SQL-koder för kompileringsfel. När alla fel korrigeras tilldelas en lagringsadress till de variabler som innehåller data. Det kallas bindande. P-kod är en lista med instruktioner för PL SQL-motorn. P-kod lagras i databasen för namngivna block och används nästa gång den körs.

13) Skill mellan syntax och runtime-fel.

Ett syntaxfel kan enkelt upptäckas av en PL / SQL-kompilator. Till exempel fel stavning.

Ett runtime-fel hanteras med hjälp av avsnitt för undantagshantering i ett PL / SQL-block. Till exempel SELECT INTO-sats, som inte returnerar några rader.

14) Förklara åtagande, återställning och sparpunkt.

För ett COMMIT-uttalande gäller följande:

  • Andra användare kan se de dataändringar som gjorts av transaktionen.
  • Lås som förvärvats genom transaktionen frigörs.
  • Arbetet med transaktionen blir permanent.

Ett ROLLBACK-uttalande utfärdas när transaktionen avslutas och följande är sant.

  • Arbetet i en övergång ångras som om det aldrig utfärdades.
  • Alla lås som förvärvats genom transaktion frigörs.

Det ångrar allt arbete som användaren gjort i en transaktion. Med SAVEPOINT kan endast en del av transaktionen ångras.

15) Definiera implicita och explicita markörer.

En markör är implicit som standard. Användaren kan inte styra eller bearbeta informationen i den här markören.

Om en fråga returnerar flera rader med data definierar programmet en uttrycklig markör. Detta gör det möjligt för applikationen att behandla varje rad sekventiellt när markören returnerar den.

16) Förklara muterande tabellfel.

Det inträffar när en trigger försöker uppdatera en rad som den använder för närvarande. Det fixas med hjälp av vyer eller tillfälliga tabeller, så databasen väljer den ena och uppdaterar den andra.

17) När krävs ett uttalande?

DECLARE-uttalande används av PL SQL-anonyma block som med fristående, icke-lagrade procedurer. Om den används måste den komma först i en fristående fil.

18) Hur många utlösare kan appliceras på en tabell?

Maximalt 12 utlösare kan tillämpas på en tabell.

19) Vad är vikten av SQLCODE och SQLERRM?

SQLCODE returnerar värdet på antalet fel för det senast påträffade felet medan SQLERRM returnerar meddelandet för det senaste felet.

20) Om en markör är öppen, hur hittar vi det i ett PL SQL-block?

% ISOPEN-markörstatusvariabeln kan användas.

21) Visa de två PL / SQL-markörundantagen.

Markör_Redan_Öppna

Invaid_markör

22) Vilka operatörer hanterar NULL?

NVL konverterar NULL till ett annat specificerat värde.

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

IS NULL och IS NOT NULL kan användas för att kontrollera specifikt om värdet på en variabel är NULL eller inte.

23) Har SQL * Plus också en PL / SQL Engine?

Nej, SQL * Plus har ingen PL / SQL-motor inbäddad. Således skickas all PL / SQL-kod direkt till databasmotorn. Det är mycket effektivare eftersom varje uttalande inte avlägsnas individuellt.

24) Vilka paket finns tillgängliga för PL SQL-utvecklare?

DBMS_-serie av paket, såsom DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.

25) Förklara 3 grundläggande delar av en trigger.

  • Ett utlösande uttalande eller händelse.
  • En begränsning
  • En handling

26) Vad är karaktärsfunktioner?

INITCAP, UPPER, SUBSTR, LOWER och LENGTH är alla karaktärsfunktioner. Gruppfunktioner ger resultat baserat på grupper av rader, i motsats till enskilda rader. De är MAX, MIN, AVG, COUNT och SUM.

27) Förklara TTITLE och BTITLE.

TTITLE- och BTITLE-kommandon som styr rapporthuvuden och sidfot.

28) Visa markörattributen för PL / SQL.

% ISOPEN: Kontrollerar om markören är öppen eller inte

% ROWCOUNT: Antalet rader som uppdateras, tas bort eller hämtas.

% FOUND: Kontrollerar om markören har hämtat någon rad. Det är sant om rader hämtas

% INTE HITTAD: Kontrollerar om markören har hämtat någon rad. Det är sant om rader inte hämtas.

29) Vad är en skärningspunkt?

Intersect är produkten av två tabeller och listar bara matchande rader.

30) Vad är sekvenser?

Sekvenser används för att generera sekvensnummer utan låsning. Dess nackdel är att sekvensnumret går förlorat om transaktionen rullas tillbaka.

31) Hur skulle du referera till kolumnvärden FÖRE och EFTER att du har infogat och raderat utlösare?

Med hjälp av nyckelordet "new.column name" kan utlösarna referera till kolumnvärden efter ny samling. Genom att använda nyckelordet "old.column name" kan de hänvisa till kolumnvärden efter gammal samling.

32) Vad använder SYSDATE och USER nyckelord?

SYSDATE hänvisar till det aktuella serversystemdatumet. Det är en pseudokolonn. USER är också en pseudokolumn men hänvisar till aktuell användare inloggad på sessionen. De används för att övervaka förändringar som händer i tabellen.

33) Hur hjälper ROWID att köra en fråga snabbare?

ROWID är den logiska adressen till en rad, det är inte en fysisk kolumn. Den består av datablocknummer, filnummer och radnummer i datablocket. Således minimeras I / O-tiden att hämta raden och resulterar i en snabbare fråga.

34) Vad används databaslänkar till?

Databaslänkar skapas för att bilda kommunikation mellan olika databaser eller olika miljöer som test, utveckling och produktion. Databaslänkarna är skrivskyddade för att också få tillgång till annan information.

35) Vad gör det att hämta en markör?

Att hämta en markör läser Resultat Set rad för rad.

36) Vad gör att stänga en markör?

Att stänga en markör rensar det privata SQL-området och avdelar minne

37) Förklara användningen av Control File.

Det är en binär fil. Den registrerar databasens struktur. Den innehåller platser för flera loggfiler, namn och tidsstämplar. De kan lagras på olika platser för att hämta information om en fil skadas.

38) Förklara konsekvens

Konsistens visar att data inte kommer att återspeglas till andra användare förrän data har begåtts, så att konsistensen bibehålls.

39) Skillnad mellan anonyma block och delprogram.

Anonyma block är namnlösa block som inte lagras någonstans medan delprogram sammanställs och lagras i databasen. De sammanställs vid körning.

40) Skillnad mellan DECODE och CASE.

DECODE- och CASE-uttalanden är mycket lika, men CASE är en utökad version av DECODE. DECODE tillåter inte att beslut fattas i stället.

välj avkodning (totalsal = 12000, 'hög', 10000, 'medium') som avkodning_tesr från smp där smpno i (10,12,14,16);

Detta uttalande returnerar ett fel.

CASE används direkt i PL SQL, men DECODE används endast i PL SQL via SQL.

41) Förklara autonoma transaktioner.

En autonom transaktion är en oberoende transaktion mellan huvud- eller modertransaktionen. Det är inte kapslat om det startas av en annan transaktion.

Det finns flera situationer för att använda autonoma transaktioner som loggning och granskning av händelser.

42) Skilja mellan SGA och PGA.

SGA står för System Global Area medan PGA står för Program eller Process Global Area. PGA tilldelas endast 10% RAM-storlek, men SGA ges 40% RAM-storlek.

43) Vad är platsen för fördefinierade funktioner.

De lagras i standardpaketet "Funktioner, procedurer och paket"

44) Förklara polymorfism i PL SQL.

Polymorfism är en funktion av OOP. Det är förmågan att skapa en variabel, ett objekt eller en funktion med flera former. PL / SQL stöder polymorfism i form av överbelastning av programenheter i en medlemsfunktion eller ett paket ... Otvetydig logik måste undvikas medan överbelastning görs.

45) Vad använder MERGE?

MERGE används för att kombinera flera DML-uttalanden till en.

Syntax: slå samman till tabellnamn

använder (fråga)

på (anslutningsvillkor)

när det inte matchas då

[infoga / uppdatera / radera] kommando

när det matchas då

[infoga / uppdatera / radera] kommando

46) Kan två frågor utföras samtidigt i ett distribuerat databassystem?

Ja, de kan köras samtidigt. En fråga är alltid oberoende av den andra frågan i ett distribuerat databassystem baserat på tvåfasförpliktelsen.

47) Förklara Raise_application_error.

Det är en procedur i paketet DBMS_STANDARD som tillåter utfärdande av användardefinierade felmeddelanden från databasutlösaren eller det lagrade underprogrammet.

48) Vad är ut-parametern som används för att även om returuttalande också kan användas i pl / sql?

Ut parametrar tillåter mer än ett värde i det anropande programmet. Out-parameter rekommenderas inte i funktioner. Procedurer kan användas istället för funktioner om flera värden krävs. Således används dessa procedurer för att utföra Out-parametrar.

49) Hur skulle du konvertera datum till julianskt datumformat?

Vi kan använda strängen J-format:

SQL> välj to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') som julian från dual;

JULIAN

50) Förklara SPOOL

Spool-kommandot kan skriva ut utdata från SQL-uttalanden i en fil.

spole / tmp / sql_outtxt

välj smp_name, smp_id från smp där dept = 'konton';

spole av;

51) Nämn vad PL / SQL-paketet består av?

Ett PL / SQL-paket består av

  • PL / SQL-tabell och spela in TYPE-uttalanden
  • Procedurer och funktioner
  • Markörer
  • Variabler (tabeller, skalarer, poster etc.) och konstanter
  • Undantagsnamn och pragmer för att relatera ett felnummer med ett undantag
  • Markörer

52) Nämn vilka fördelar har PL / SQL-paket?

Det ger flera fördelar som

  • Tvingad informationsdöljande: Det erbjuder friheten att välja om data ska hållas privata eller offentliga
  • Top-down design: Du kan designa gränssnittet till koden som är dold i paketet innan du faktiskt implementerade själva modulerna
  • Objektets uthållighet: Objekt som deklarerats i en paketspecifikation beter sig som en global data för alla PL / SQL-objekt i applikationen. Du kan ändra paketet i en modul och sedan hänvisa dessa ändringar till en annan modul
  • Objektorienterad design: Paketet ger utvecklare starkt grepp om hur modulerna och datastrukturerna i paketet kan användas
  • Garantera transaktionsintegritet: Det ger en nivå av transaktionsintegritet
  • Prestandaförbättring: RDBMS spårar automatiskt giltigheten för alla programobjekt som lagras i databasen och förbättrar paketens prestanda.

53) Nämn vad är olika metoder för att spåra PL / SQL-koden?

Spårningskod är en avgörande teknik för att mäta kodens prestanda under körningen. Olika metoder för spårning inkluderar

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION och DBMS_MONITOR
  • trcsess och tkproof verktyg

54) Nämn vad gör den hierarkiska profilen?

Den hierarkiska profilen kan profilera samtal som gjorts i PL / SQL, förutom att fylla klyftan mellan kryphålen och förväntningarna om prestationsspårning. Effektiviteten för den hierarkiska profilen inkluderar

  • Distinkt rapportering för SQL- och PL / SQL-tidsförbrukning
  • Rapporter räknar olika distansprogram för samtal som görs i PL / SQL och den tid som spenderas med varje delprogramsamtal
  • Flera interaktiva analysrapporter i HTML-format med hjälp av kommandoradsverktyget
  • Effektivare än konventionella profiler och andra spårningsverktyg

55) Nämn vad låter PLV msg dig göra?

Med PLV-meddelandet kan du

  • Tilldela enskilt textmeddelande till angiven rad i PL / SQL-tabellen
  • Den hämtar meddelandetexten efter nummer
  • Det ersätter automatiskt dina egna meddelanden med standard Oracle-felmeddelanden med begränsningsväxling
  • Batchbelastningsnummer och text från en databastabell direkt PLV msg PL / SQL-tabell

56) Nämn vad erbjuder paketet PLV (PL / Vision)?

  • Noll substitutionsvärde
  • Uppsättning av påstående rutiner
  • Diverse verktyg
  • Uppsättning av konstanter som används genom PL-vision
  • Fördefinierade datatyper
  • 57) Nämn vad är användningen av PLVprs och PLVprsps?
  • PLVprs: Det är en förlängning för strängparsning för PL / SQL, och det är den lägsta nivån för strängparsningsfunktionalitet
  • PLVprsps: Det är paketet på högsta nivå att analysera PL / SQL-källkod i separata atomar. Det är beroende av andra analyseringspaket för att få jobbet gjort.

58) Förklara hur du kan kopiera en fil till filinnehåll och fil till PL / SQL-tabellen i förväg PL / SQL?

Med ett enda programanrop - " fcopy procedure" kan du kopiera hela innehållet i en fil till en annan fil. Medan du kopierar innehållet i en fil direkt till en PL / SQL-tabell kan du använda programmet " file2pstab" .

59) Förklara hur undantagshantering görs i förväg PL / SQL?

För undantagshantering ger PL / SQl ett effektivt plugin PLVexc. PLVexc stöder fyra olika åtgärder för undantagshantering.

  • Fortsätt bearbetningen
  • Spela in och fortsätt sedan
  • Stoppa bearbetning
  • Spela in och stoppa behandlingen

För de undantag som återkommer kan du använda RAISE-uttalandet.

60) Nämn vilket problem man kan möta när man skriver logginformation till en databastabell i PL / SQL?

När du skriver logginformation till en databastabell är problemet du står inför att informationen endast är tillgänglig när de nya raderna har kopplats till databasen. Detta kan vara ett problem eftersom PLVlog vanligtvis distribueras för att spåra fel och i många sådana fall skulle den nuvarande transaktionen misslyckas eller på annat sätt behövs en återställning.

61) Nämn vilken funktion är som används för att överföra en PL / SQL-tabelllogg till en databastabell?

För att överföra en PL / SQL-tabelllogg används en databasloggfunktion "PROCEDURE ps2db" .

62) När du måste använda en standard "återställning till" sparpunkt för PLVlog?

Standardvärdet "återställning till" sparpunkt för PLVlog används när användarna har aktiverat återställningsaktiviteten och inte har tillhandahållit en alternativ sparpunkt i samtalet till put_line. Standard sparpunkten initialiseras till c ingen konstant.

63) Varför anses PLVtab vara det enklaste sättet att komma åt PL / SQL-tabellen?

PL / SQL-tabellen är närmast matriser i PL / SQL, och för att komma åt denna tabell måste du först deklarera en tabelltyp och sedan måste du deklarera PL / SQL-tabellen själv. Men genom att använda PLVtab kan du undvika att definiera din egen PL / SQL-tabelltyp och göra PL / SQL-datatabellåtkomst enkel.

64) Nämn vad gör PLVtab att du kan göra när du visar innehållet i PL / SQL-tabeller?

Med PLVtab kan du göra följande när du visar innehållet i PL / SQL-tabeller

  • Visa eller undertrycka en rubrik för tabellen
  • Visa eller undertrycka radnumren för tabellvärdena
  • Visa ett prefix före varje rad i tabellen

65) Förklara hur kan du spara eller placera din msg i en tabell?

För att spara msg i en tabell kan du göra det på två sätt

  • Ladda enskilda meddelanden med samtal till proceduren add_text
  • Ladda uppsättningar meddelanden från en databastabell med load_from_dbms- proceduren

66) Nämn vad är funktionen "modulprocedur" i PL / SQL?

"Modulproceduren" gör det möjligt att konvertera alla kodrader i en bestämd programenhet med ett proceduranrop. Det finns tre argument för moduler

  • modul_in
  • cor_in
  • Last_module_in

67) Nämn vad PLVcmt och PLVrb gör i PL / SQL?

PL / Vision erbjuder två paket som hjälper dig att hantera transaktionsbehandling i PL / SQL-applikation. Det är PLVcmt och PLVrb.

  • PLVcmt: PLVcmt-paketet omsluter logik och komplexitet för att hantera commit-bearbetning
  • PLVrb: Det ger ett programmatiskt gränssnitt för återställning av aktivitet i PL / SQL