Topp 65 PL / SQL-intervjuspørsmål & Svar

Anonim

Last ned PDF

1) Hva er PL SQL?

PL SQL er et prosedyrespråk som har interaktiv SQL, samt prosessuelle programmeringsspråkkonstruksjoner som betinget forgrening og iterasjon.

2) Forskjell mellom% ROWTYPE og TYPE RECORD.

% ROWTYPE brukes når et spørsmål returnerer en hel rad i en tabell eller visning.

TYPE RECORD brukes derimot når et spørsmål returnerer kolonne med forskjellige tabeller eller visninger.

F.eks. TYPE r_emp er RECORD (sno smp.smpno% type, sname smp sname% type)

e_rec smp% ROWTYPE

Markør c1 er velg smpno, avd. Fra smp;

e_rec c1% ROWTYPE

3) Forklar bruk av markøren.

Markør er et navngitt privat område i SQL hvor informasjon kan nås. De må behandle hver rad individuelt for spørsmål som returnerer flere rader.

4) Vis koden til en markør for loop.

Markør erklærer% ROWTYPE implisitt som loopindeks. Deretter åpnes en markør, får rader med verdier fra det aktive settet i felt i posten og lukkes når alle poster behandles.

F.eks. FOR smp_rec I C1 LOOP

total = total + smp_recsal;

ENDLOOP;

5) Forklar bruken av databasetrigger.

En PL / SQL-programenhet assosiert med en bestemt databasetabell kalles en databasetrigger. Den brukes til:

1) Revisjonsdatamodifikasjoner.

2) Logg hendelser transparent.

3) Håndhev komplekse forretningsregler.

4) Vedlikehold replikatabeller

5) Utled kolonneverdier

6) Implementere komplekse sikkerhetsautorisasjoner

6) Hva er de to typer unntak.

Feilhåndtering av en del av PL / SQL-blokken kalles Unntak. De har to typer: brukerdefinert og forhåndsdefinert.

7) Vis noen forhåndsdefinerte unntak.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

INGEN DATA FUNNET

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

FEIL NUMMER

INVALID_CURSOR

PROGRAM_ERROR

TIMEOUT _ON_RESOURCE

STORAGE_ERROR

LOGON_DENIED

VALUE_ERROR

etc.

8) Forklar Raise_application_error.

Det er en prosedyre for pakken DBMS_STANDARD som tillater utstedelse av brukerdefinerte feilmeldinger fra databasetrigger eller lagret underprogram.

9) Vis hvordan funksjoner og prosedyrer kalles i en PL SQL-blokk.

Funksjon kalles som en del av et uttrykk.

totalt: = calc_sal ('b644')

Prosedyre kalles som en uttalelse i PL / SQL.

beregne_bonus ('b644');

10) Forklar to virtuelle tabeller tilgjengelig på tidspunktet for utførelse av databasetrigger.

Tabellkolonner blir referert til DEN.kolonne_navn og NÅ.Kolonne_navn.

For INSERT-relaterte utløsere er verdiene NOW.column_name bare tilgjengelige.

For DELETE-relaterte utløsere er THEN.column_name-verdiene bare tilgjengelige.

For UPDATE-relaterte utløsere er begge tabellkolonnene tilgjengelige.

11) Hva er reglene som skal brukes på NULLs når du gjør sammenligninger?

1) NULL er aldri SANN eller FALSK

2) NULL kan ikke være lik eller ulik andre verdier

3) Hvis en verdi i et uttrykk er NULL, evalueres selve uttrykket til NULL bortsett fra sammenkoblingsoperator (||)

12) Hvordan kompileres en prosess med PL SQL?

Kompileringsprosessen inkluderer syntaks sjekk, bind og generering av p-kode prosesser.

Syntakskontroll sjekker PL SQL-kodene for kompileringsfeil. Når alle feil er rettet, tildeles en lagringsadresse til variablene som inneholder data. Det kalles Binding. P-kode er en liste over instruksjoner for PL SQL-motoren. P-kode lagres i databasen for navngitte blokker og brukes neste gang den kjøres.

13) Skille mellom syntaks og kjøretidsfeil.

En syntaksfeil kan lett oppdages av en PL / SQL-kompilator. For eksempel feil staving.

En kjøretidsfeil håndteres ved hjelp av unntakshåndteringsseksjonen i en PL / SQL-blokk. For eksempel SELECT INTO statement, som ikke returnerer noen rader.

14) Forklar Commit, Rollback og Savepoint.

For en COMMIT-uttalelse gjelder følgende:

  • Andre brukere kan se dataendringene som er gjort av transaksjonen.
  • Låsene som ervervet ved transaksjonen frigjøres.
  • Arbeidet utført av transaksjonen blir permanent.

En ROLLBACK-uttalelse blir utstedt når transaksjonen avsluttes, og følgende er sant.

  • Arbeidet som gjøres i en overgang angres som om det aldri ble utstedt.
  • Alle låser anskaffet ved transaksjon frigjøres.

Det angrer alt arbeidet som er utført av brukeren i en transaksjon. Med SAVEPOINT kan bare en del av transaksjonen angres.

15) Definer implisitte og eksplisitte markører.

En markør er implisitt som standard. Brukeren kan ikke kontrollere eller behandle informasjonen i denne markøren.

Hvis et spørsmål returnerer flere rader med data, definerer programmet en eksplisitt markør. Dette gjør at applikasjonen kan behandle hver rad sekvensielt når markøren returnerer den.

16) Forklar mutasjonstabelfeil.

Det oppstår når en trigger prøver å oppdatere en rad som den bruker for øyeblikket. Det løses ved å bruke visninger eller midlertidige tabeller, så databasen velger den ene og oppdaterer den andre.

17) Når kreves en erklæring?

DECLARE-setning brukes av PL SQL anonyme blokker som med frittstående, ikke-lagrede prosedyrer. Hvis den brukes, må den komme først i en frittstående fil.

18) Hvor mange utløsere kan brukes på et bord?

Maksimalt 12 utløsere kan brukes på en tabell.

19) Hva er viktigheten av SQLCODE og SQLERRM?

SQLCODE returnerer verdien av antall feil for den siste feilen mens SQLERRM returnerer meldingen for den siste feilen.

20) Hvis en markør er åpen, hvordan kan vi finne det i en PL SQL-blokk?

% ISOPEN-markørstatusvariabelen kan brukes.

21) Vis de to PL / SQL-markørenes unntak.

Markør_ Allerede_Åpne

Invaid_ markør

22) Hvilke operatører håndterer NULL?

NVL konverterer NULL til en annen spesifisert verdi.

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

IS NULL og IS NOT NULL kan brukes til å sjekke spesifikt for å se om verdien til en variabel er NULL eller ikke.

23) Har SQL * Plus også en PL / SQL-motor?

Nei, SQL * Plus har ikke en PL / SQL-motor innebygd. Dermed blir all PL / SQL-kode sendt direkte til databasemotoren. Det er mye mer effektivt ettersom hver uttalelse ikke fjernes individuelt.

24) Hvilke pakker er tilgjengelige for PL SQL-utviklere?

DBMS_ serie pakker, for eksempel DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.

25) Forklar 3 grunnleggende deler av en utløser.

  • En utløsende uttalelse eller hendelse.
  • En begrensning
  • Et tiltak

26) Hva er karakterfunksjoner?

INITCAP, UPPER, SUBSTR, LOWER og LENGTH er alle tegnfunksjoner. Gruppefunksjoner gir resultater basert på grupper av rader, i motsetning til individuelle rader. De er MAX, MIN, AVG, COUNT og SUM.

27) Forklar TTITLE og BTITLE.

TTITLE og BTITLE-kommandoer som styrer topptekster og bunntekster.

28) Vis markørattributtene til PL / SQL.

% ISOPEN: Sjekker om markøren er åpen eller ikke

% ROWCOUNT: Antall rader som er oppdatert, slettet eller hentet.

% FOUND: Sjekker om markøren har hentet en rad. Det er sant hvis rader hentes

% IKKE Funnet: Sjekker om markøren har hentet en rad. Det er sant hvis rader ikke blir hentet.

29) Hva er et kryss?

Intersect er et produkt av to tabeller og viser bare samsvarende rader.

30) Hva er sekvenser?

Sekvenser brukes til å generere sekvensnummer uten låsekostnader. Dens ulempe er at sekvensnummeret går tapt hvis transaksjonen rulles tilbake.

31) Hvordan vil du referere til kolonneverdier FØR og ETTER at du har satt inn og slettet utløsere?

Ved å bruke nøkkelordet "new.column name" kan utløserne referere til kolonneverdier etter ny samling. Ved å bruke nøkkelordet "old.column name" kan de referere til kolonnevarer etter gammel samling.

32) Hva bruker SYSDATE og USER nøkkelord?

SYSDATE refererer til gjeldende serversystemdato. Det er en pseudokolonne. USER er også en pseudokolonne, men refererer til nåværende bruker som er logget på økten. De brukes til å overvåke endringer som skjer i tabellen.

33) Hvordan hjelper ROWID med å kjøre et spørsmål raskere?

ROWID er den logiske adressen til en rad, det er ikke en fysisk kolonne. Den består av datablokknummer, filnummer og radnummer i datablokken. Dermed blir I / O-tiden minimert å hente raden, og resulterer i en raskere spørring.

34) Hva brukes databasekoblinger til?

Databasekoblinger opprettes for å danne kommunikasjon mellom forskjellige databaser, eller forskjellige miljøer som test, utvikling og produksjon. Databasekoblingene er skrivebeskyttet for å få tilgang til annen informasjon også.

35) Hva gjør det å hente en markør?

Å hente en markør viser Resultatsett rad for rad.

36) Hva gjør lukking av en markør?

Når du lukker markøren, tømmes det private SQL-området i tillegg til at de allokerer minne

37) Forklar bruken av Control File.

Det er en binær fil. Den registrerer databasens struktur. Den inkluderer plassering av flere loggfiler, navn og tidsstempler. De kan lagres på forskjellige steder for å hjelpe til med å hente informasjon hvis en fil blir ødelagt.

38) Forklar konsistens

Konsistens viser at data ikke vil reflekteres til andre brukere før dataene er begått, slik at konsistensen opprettholdes.

39) Forskjell mellom anonyme blokker og underprogrammer.

Anonyme blokker er navnløse blokker som ikke lagres hvor som helst mens underprogrammer blir samlet og lagret i databasen. De blir samlet ved kjøretid.

40) Forskjell mellom DECODE og CASE.

DECODE og CASE uttalelser er veldig like, men CASE er utvidet versjon av DECODE. DECODE tillater ikke avgjørelser i stedet.

velg dekode (total = 12000, 'høy', 10000, 'medium') som dekode_tesr fra smp der smpno i (10,12,14,16);

Denne setningen returnerer en feil.

CASE brukes direkte i PL SQL, men DECODE brukes kun i PL SQL gjennom SQL.

41) Forklar autonome transaksjoner.

En autonom transaksjon er en uavhengig transaksjon av hoved- eller overordnet transaksjon. Det er ikke nestet hvis det startes av en annen transaksjon.

Det er flere situasjoner å bruke autonome transaksjoner som hendelseslogging og revisjon.

42) Skille mellom SGA og PGA.

SGA står for System Global Area, mens PGA står for Program eller Process Global Area. PGA tildeles bare 10% RAM-størrelse, men SGA får 40% RAM-størrelse.

43) Hva er stedet for forhåndsdefinerte funksjoner.

De lagres i standardpakken kalt "Funksjoner, prosedyrer og pakker"

44) Forklar polymorfisme i PL SQL.

Polymorfisme er et trekk ved OOP. Det er muligheten til å lage en variabel, et objekt eller en funksjon med flere former. PL / SQL støtter polymorfisme i form av overbelastning av programenheter inne i en medlemsfunksjon eller pakke ... Det må unngås entydig logikk mens overbelastning gjøres.

45) Hva bruker MERGE?

MERGE brukes til å kombinere flere DML-setninger til en.

Syntaks: flett inn i tabellnavn

bruker (spørring)

på (delta betingelse)

når den ikke matches

[sett inn / oppdater / slett] kommando

når matchet da

[sett inn / oppdater / slett] kommando

46) Kan to spørsmål utføres samtidig i et distribuert databasesystem?

Ja, de kan utføres samtidig. Én spørring er alltid uavhengig av den andre spørringen i et distribuert databasesystem basert på 2-fase-forpliktelsen.

47) Forklar Raise_application_error.

Det er en prosedyre for pakken DBMS_STANDARD som tillater utstedelse av brukerdefinerte feilmeldinger fra databasetriggeren eller det lagrede underprogrammet.

48) Hva er ut-parameteren som brukes til selv om returuttalelse også kan brukes i pl / sql?

Ut-parametere tillater mer enn én verdi i anropsprogrammet. Ut-parameter anbefales ikke i funksjoner. Prosedyrer kan brukes i stedet for funksjoner hvis flere verdier er nødvendige. Dermed brukes disse prosedyrene for å utføre Out-parametere.

49) Hvordan vil du konvertere dato til juliansk datoformat?

Vi kan bruke J-formatstrengen:

SQL> velg to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') som julian fra dual;

JULIAN

50) Forklar SPOOL

Spool-kommando kan skrive ut utdata fra SQL-setninger i en fil.

spole / tmp / sql_outtxt

velg smp_name, smp_id fra smp der dept = 'kontoer';

spole av;

51) Nevn hva PL / SQL-pakken består av?

En PL / SQL-pakke består av

  • PL / SQL-tabell og registrer TYPE-setninger
  • Prosedyrer og funksjoner
  • Markører
  • Variabler (tabeller, skalarer, poster osv.) Og konstanter
  • Unntak navn og pragmas for å relatere et feilnummer med unntak
  • Markører

52) Nevn hva er fordelene med PL / SQL-pakker?

Det gir flere fordeler som

  • Håndhevet informasjon skjuler: Det gir frihet til å velge om dataene skal holdes private eller offentlige
  • Top-down design: Du kan designe grensesnittet til koden som er skjult i pakken før du faktisk implementerte modulene selv
  • Objektets utholdenhet: Objekter som er deklarert i en pakkespesifikasjon, oppfører seg som en global data for alle PL / SQL-objekter i applikasjonen. Du kan endre pakken i en modul og deretter henvise endringene til en annen modul
  • Objektorientert design: Pakken gir utviklere sterkt grep om hvordan modulene og datastrukturene inne i pakken kan brukes
  • Garanterer transaksjonsintegritet: Det gir et nivå av transaksjonsintegritet
  • Ytelsesforbedring: RDBMS sporer automatisk gyldigheten til alle programobjekter som er lagret i databasen og forbedrer ytelsen til pakker.

53) Nevn hva som er forskjellige metoder for å spore PL / SQL-koden?

Sporingskode er en viktig teknikk for å måle kodeytelsen i løpet av kjøretiden. Ulike metoder for sporing inkluderer

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION og DBMS_MONITOR
  • trcsess og tkproof verktøy

54) Nevn hva gjør den hierarkiske profilen?

Den hierarkiske profilen kunne profilere samtalene som ble gjort i PL / SQL, bortsett fra å fylle gapet mellom smutthullene og forventningene til ytelsessporing. Effektiviteten til den hierarkiske profilen inkluderer

  • Tydelig rapportering for SQL og PL / SQL tidsforbruk
  • Rapporter teller av forskjellige underprogrammanrop som er foretatt i PL / SQL, og tiden som brukes med hvert underprogramanrop
  • Flere interaktive analyserapporter i HTML-format ved hjelp av kommandolinjeprogrammet
  • Mer effektivt enn konvensjonelle profiler og andre sporingsverktøy

55) Nevn hva lar PLV msg deg gjøre?

Med PLV-meldingen kan du

  • Tilordne individuell tekstmelding til spesifisert rad i PL / SQL-tabellen
  • Den henter meldingsteksten etter nummer
  • Den erstatter automatisk dine egne meldinger med standard Oracle-feilmeldinger med begrensningsbryter
  • Batchload-meldingsnummer og tekst fra en databasetabell direkte PLV msg PL / SQL-tabell

56) Nevn hva tilbyr PLV (PL / Vision) -pakken?

  • Null substitusjonsverdi
  • Sett med påstandsrutiner
  • Diverse verktøy
  • Sett med konstanter brukt gjennom PL-visjonen
  • Forhåndsdefinerte datatyper
  • 57) Nevn hva er bruken av PLVprs og PLVprsps?
  • PLVprs: Det er en utvidelse for strengparsing for PL / SQL, og det er det laveste nivået av strengparseringsfunksjonalitet
  • PLVprsps: Det er pakken på høyeste nivå å analysere PL / SQL-kildekode i separate atomar. Det er avhengig av andre analysepakker for å få utført arbeid.

58) Forklar hvordan du kan kopiere en fil til filinnhold og fil til PL / SQL-tabellen på forhånd PL / SQL?

Med en enkelt programanrop - " fcopy procedure", kan du kopiere hele innholdet i en fil til en annen fil. Mens du skal kopiere innholdet i en fil direkte til en PL / SQL-tabell, kan du bruke programmet " file2pstab" .

59) Forklar hvordan unntakshåndtering gjøres på forhånd PL / SQL?

For unntakshåndtering gir PL / SQl et effektivt plugin PLVexc. PLVexc støtter fire forskjellige handlinger for unntakshåndtering.

  • Fortsett behandlingen
  • Ta opp og fortsett
  • Stansebehandling
  • Registrer og stopp deretter behandlingen

For de unntakene som gjentar seg, kan du bruke RAISE-setningen.

60) Nevn hvilket problem man kan møte når man skriver logginformasjon til en databasetabell i PL / SQL?

Mens du skriver logginformasjon til en databasetabell, er problemet du står overfor at informasjonen bare er tilgjengelig når de nye radene er forpliktet til databasen. Dette kan være et problem, da PLVlog vanligvis blir distribuert for å spore feil, og i mange slike tilfeller vil den gjeldende transaksjonen mislykkes eller på annen måte trenge tilbakeføring.

61) Nevn hva som er funksjonen som brukes til å overføre en PL / SQL-tabelllogg til en databasetabell?

For å overføre en PL / SQL- tabellogg, brukes en databaseloggtabellfunksjon "PROSEDURE ps2db" .

62) Når du må bruke en standard "tilbakestilling til" lagringspunkt for PLVlog?

Standard "tilbakestilling til" lagringspunkt for PLVlog brukes når brukerne har slått på tilbakestillingsaktiviteten og ikke har gitt et alternativt lagringspunkt i samtalen til put_line. Standard lagringspunkt initialiseres til c none konstant.

63) Hvorfor anses PLVtab som den enkleste måten å få tilgang til PL / SQL-tabellen?

PL / SQL-tabellen er nærmest matriser i PL / SQL, og for å få tilgang til denne tabellen må du først deklarere en tabelltype, og deretter må du erklære PL / SQL-tabellen selv. Men ved å bruke PLVtab kan du unngå å definere din egen PL / SQL-tabelltype og gjøre PL / SQL-datatabeltilgang enkel.

64) Nevn hva gjør PLVtab det mulig å gjøre når du viser innholdet i PL / SQL-tabeller?

PLVtab lar deg gjøre følgende når du viser innholdet i PL / SQL-tabeller

  • Vis eller undertrykk en topptekst for bordet
  • Vis eller undertrykk radnumrene for tabellverdiene
  • Vis et prefiks foran hver rad i tabellen

65) Forklar hvordan kan du lagre eller plassere meldingen i en tabell?

For å lagre msg i en tabell, kan du gjøre det på to måter

  • Last individuelle meldinger med anrop til prosedyren add_text
  • Last inn sett med meldinger fra en databasetabell med fremgangsmåten load_from_dbms

66) Nevn hva er bruken av funksjonen "modulprosedyre" i PL / SQL?

"Modulprosedyren" gjør det mulig å konvertere alle kodelinjene i en bestemt programenhet med en prosedyreanrop. Det er tre argumenter for moduler

  • module_in
  • cor_in
  • Last_module_in

67) Nevn hva PLVcmt og PLVrb gjør i PL / SQL?

PL / Vision tilbyr to pakker som hjelper deg med å administrere transaksjonsbehandling i PL / SQL-applikasjon. Det er PLVcmt og PLVrb.

  • PLVcmt: PLVcmt-pakken omslutter logikk og kompleksitet for å håndtere forpliktelsesbehandling
  • PLVrb: Det gir et programmatisk grensesnitt for tilbakeføring av aktivitet i PL / SQL