Le 65 principali domande di colloquio PL / SQL e amp; Risposte

Anonim

Scarica il pdf

1) Cos'è PL SQL?

PL SQL è un linguaggio procedurale che dispone di SQL interattivo, nonché costrutti del linguaggio di programmazione procedurale come la ramificazione condizionale e l'iterazione.

2) Differenziare tra% ROWTYPE e TYPE RECORD.

% ROWTYPE viene utilizzato quando una query restituisce un'intera riga di una tabella o vista.

TYPE RECORD, d'altra parte, viene utilizzato quando una query restituisce colonne di diverse tabelle o viste.

Per esempio. TYPE r_emp è RECORD (sno smp.smpno% type, sname smp sname% type)

e_rec smp% ROWTYPE

Il cursore c1 è selezionare smpno, dept da smp;

e_rec c1% ROWTYPE

3) Spiegare gli usi del cursore.

Il cursore è un'area privata denominata in SQL da cui è possibile accedere alle informazioni. Sono necessari per elaborare ogni riga individualmente per le query che restituiscono più righe.

4) Mostra il codice di un cursore per il ciclo.

Il cursore dichiara implicitamente% ROWTYPE come indice del ciclo. Quindi apre un cursore, ottiene righe di valori dal set attivo nei campi del record e si chiude quando tutti i record vengono elaborati.

Per esempio. PER smp_rec IN C1 LOOP

totalsal = total + smp_recsal;

ENDLOOP;

5) Spiegare gli usi del trigger del database.

Un'unità di programma PL / SQL associata a una particolare tabella di database è chiamata trigger di database. È usato per:

1) Modifiche ai dati di audit.

2) Registra gli eventi in modo trasparente.

3) Applicare regole aziendali complesse.

4) Mantenere le tabelle di replica

5) Ricava valori di colonna

6) Implementare autorizzazioni di sicurezza complesse

6) Quali sono i due tipi di eccezioni.

La parte di gestione degli errori del blocco PL / SQL è chiamata eccezione. Hanno due tipi: user_defined e predefiniti.

7) Mostra alcune eccezioni predefinite.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

NESSUN DATO TROVATO

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

NUMERO NON VALIDO

INVALID_CURSOR

PROGRAM_ERROR

TIMEOUT _ON_RESOURCE

STORAGE_ERROR

LOGON_DENIED

VALUE_ERROR

eccetera.

8) Spiega Raise_application_error.

È una procedura del pacchetto DBMS_STANDARD che consente l'emissione di messaggi di errore definiti dall'utente dal trigger del database o dal sottoprogramma memorizzato.

9) Mostra come vengono chiamate funzioni e procedure in un blocco PL SQL.

La funzione viene chiamata come parte di un'espressione.

totale: = calcola_sal ('b644')

La procedura viene chiamata come un'istruzione in PL / SQL.

calcola_bonus ('b644');

10) Spiegare due tabelle virtuali disponibili al momento dell'esecuzione del trigger del database.

Le colonne della tabella vengono denominate THEN.column_name e NOW.column_name.

Per i trigger correlati a INSERT, sono disponibili solo i valori NOW.column_name.

Per i trigger correlati a DELETE, sono disponibili solo i valori THEN.column_name.

Per i trigger correlati all'AGGIORNAMENTO, sono disponibili entrambe le colonne della tabella.

11) Quali sono le regole da applicare ai NULL durante i confronti?

1) NULL non è mai VERO o FALSO

2) NULL non può essere uguale o diverso da altri valori

3) Se un valore in un'espressione è NULL, l'espressione stessa restituisce NULL ad eccezione dell'operatore di concatenazione (||)

12) Come viene compilato un processo di PL SQL?

Il processo di compilazione include i processi di controllo della sintassi, bind e generazione del codice p.

Il controllo della sintassi controlla i codici PL SQL per errori di compilazione. Quando tutti gli errori vengono corretti, alle variabili che contengono i dati viene assegnato un indirizzo di archiviazione. Si chiama Binding. Il codice P è un elenco di istruzioni per il motore PL SQL. Il codice P viene memorizzato nel database per i blocchi denominati e viene utilizzato la prossima volta che viene eseguito.

13) Distinguere tra errori di sintassi ed errori di runtime.

Un errore di sintassi può essere facilmente rilevato da un compilatore PL / SQL. Ad esempio, ortografia errata.

Un errore di runtime viene gestito con l'aiuto della sezione di gestione delle eccezioni in un blocco PL / SQL. Ad esempio, l'istruzione SELECT INTO, che non restituisce alcuna riga.

14) Spiegare Commit, Rollback e Savepoint.

Per un'istruzione COMMIT, è vero quanto segue:

  • Gli altri utenti possono vedere le modifiche ai dati apportate dalla transazione.
  • I blocchi acquisiti dalla transazione vengono rilasciati.
  • Il lavoro svolto dalla transazione diventa permanente.

Al termine della transazione viene emessa un'istruzione ROLLBACK e quanto segue è vero.

  • Il lavoro svolto in una transizione viene annullato come se non fosse mai stato pubblicato.
  • Tutti i blocchi acquisiti per transazione vengono rilasciati.

Annulla tutto il lavoro svolto dall'utente in una transazione. Con SAVEPOINT, solo una parte della transazione può essere annullata.

15) Definisci cursori impliciti ed espliciti.

Un cursore è implicito per impostazione predefinita. L'utente non può controllare o elaborare le informazioni in questo cursore.

Se una query restituisce più righe di dati, il programma definisce un cursore esplicito. Ciò consente all'applicazione di elaborare ogni riga in sequenza quando il cursore la restituisce.

16) Spiegare l'errore della tabella di mutazione.

Si verifica quando un trigger tenta di aggiornare una riga che sta attualmente utilizzando. Viene risolto utilizzando viste o tabelle temporanee, quindi il database ne seleziona una e aggiorna l'altra.

17) Quando è richiesta una dichiarazione di dichiarazione?

L'istruzione DECLARE viene utilizzata da blocchi anonimi PL SQL come con procedure autonome e non memorizzate. Se viene utilizzato, deve essere inserito per primo in un file autonomo.

18) Quanti trigger possono essere applicati a una tabella?

È possibile applicare un massimo di 12 trigger a una tabella.

19) Qual è l'importanza di SQLCODE e SQLERRM?

SQLCODE restituisce il valore del numero di errori per l'ultimo errore riscontrato mentre SQLERRM restituisce il messaggio per l'ultimo errore.

20) Se un cursore è aperto, come possiamo trovarlo in un PL SQL Block?

è possibile utilizzare la variabile di stato del cursore% ISOPEN.

21) Mostra le due eccezioni del cursore PL / SQL.

Cursor_Already_Open

Invaid_cursor

22) Quali operatori si occupano di NULL?

NVL converte NULL in un altro valore specificato.

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

IS NULL e IS NOT NULL possono essere utilizzati per verificare specificamente se il valore di una variabile è NULL o meno.

23) SQL * Plus dispone anche di un motore PL / SQL?

No, SQL * Plus non dispone di un motore PL / SQL incorporato. Pertanto, tutto il codice PL / SQL viene inviato direttamente al motore di database. È molto più efficiente in quanto ogni affermazione non viene rimossa individualmente.

24) Quali pacchetti sono disponibili per gli sviluppatori PL SQL?

DBMS_ serie di pacchetti, come DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.

25) Spiega 3 parti fondamentali di un trigger.

  • Una dichiarazione o un evento scatenante.
  • Una restrizione
  • Un'azione

26) Cosa sono le funzioni dei caratteri?

INITCAP, UPPER, SUBSTR, LOWER e LENGTH sono tutte funzioni carattere. Le funzioni di gruppo forniscono risultati basati su gruppi di righe, anziché su singole righe. Sono MAX, MIN, AVG, COUNT e SUM.

27) Spiega TTITLE e BTITLE.

Comandi TTITLE e BTITLE che controllano le intestazioni e i piè di pagina dei rapporti.

28) Mostra gli attributi del cursore di PL / SQL.

% ISOPEN: controlla se il cursore è aperto o meno

% ROWCOUNT: il numero di righe che vengono aggiornate, eliminate o recuperate.

% FOUND: controlla se il cursore ha recuperato una riga. È vero se le righe vengono recuperate

% NON TROVATO: controlla se il cursore ha recuperato una riga. È vero se le righe non vengono recuperate.

29) Cos'è un intersezione?

Intersect è il prodotto di due tabelle ed elenca solo le righe corrispondenti.

30) Cosa sono le sequenze?

Le sequenze vengono utilizzate per generare numeri di sequenza senza un sovraccarico di blocco. Il suo svantaggio è che il numero di sequenza viene perso se la transazione viene annullata.

31) Come faresti riferimento ai valori delle colonne PRIMA e DOPO l'inserimento e l'eliminazione dei trigger?

Utilizzando la parola chiave "new.column name", i trigger possono fare riferimento ai valori delle colonne in base alla nuova raccolta. Utilizzando la parola chiave "old.column name", possono fare riferimento ai valori delle colonne della vecchia collezione.

32) Quali sono gli utilizzi delle parole chiave SYSDATE e USER?

SYSDATE si riferisce alla data di sistema del server corrente. È una pseudo colonna. USER è anche una pseudo colonna ma si riferisce all'utente corrente connesso alla sessione. Sono utilizzati per monitorare i cambiamenti che si verificano nella tabella.

33) In che modo ROWID aiuta a eseguire una query più velocemente?

ROWID è l'indirizzo logico di una riga, non è una colonna fisica. Si compone di numero di blocco dati, numero di file e numero di riga nel blocco dati. Pertanto, il tempo di I / O viene ridotto al minimo durante il recupero della riga e risulta in una query più veloce.

34) A cosa servono i collegamenti al database?

I collegamenti al database vengono creati per formare la comunicazione tra vari database o ambienti diversi come test, sviluppo e produzione. I collegamenti al database sono di sola lettura per accedere anche ad altre informazioni.

35) Cosa fa il recupero di un cursore?

Il recupero di un cursore legge Set di risultati riga per riga.

36) Cosa fa la chiusura di un cursore?

La chiusura di un cursore cancella l'area SQL privata e disalloca la memoria

37) Spiegare gli usi del file di controllo.

È un file binario. Registra la struttura del database. Include posizioni di diversi file di registro, nomi e timestamp. Possono essere archiviati in posizioni diverse per facilitare il recupero delle informazioni se un file viene danneggiato.

38) Spiegare la coerenza

La coerenza mostra che i dati non verranno riflessi ad altri utenti fino a quando i dati non vengono salvati, in modo che la coerenza venga mantenuta.

39) Differire tra blocchi anonimi e sottoprogrammi.

I blocchi anonimi sono blocchi senza nome che non vengono memorizzati da nessuna parte mentre i sottoprogrammi vengono compilati e memorizzati nel database. Vengono compilati in fase di esecuzione.

40) Differiscono tra DECODE e CASE.

Le istruzioni DECODE e CASE sono molto simili, ma CASE è una versione estesa di DECODE. DECODE non consente il processo decisionale al suo posto.

seleziona decode (total = 12000, 'high', 10000, 'medium') come decode_tesr da smp dove smpno in (10,12,14,16);

Questa istruzione restituisce un errore.

CASE viene utilizzato direttamente in PL SQL, ma DECODE viene utilizzato solo in PL SQL tramite SQL.

41) Spiegare la transazione autonoma.

Una transazione autonoma è una transazione indipendente della transazione principale o principale. Non è nidificato se viene avviato da un'altra transazione.

Esistono diverse situazioni per utilizzare transazioni autonome come la registrazione e il controllo degli eventi.

42) Differenziare tra SGA e PGA.

SGA sta per System Global Area mentre PGA sta per Program o Process Global Area. A PGA viene assegnata solo la dimensione della RAM del 10%, ma a SGA viene assegnata la dimensione della RAM del 40%.

43) Qual è la posizione di Pre_defined_functions.

Sono memorizzati nel pacchetto standard chiamato "Funzioni, procedure e pacchetti"

44) Spiega il polimorfismo in PL SQL.

Il polimorfismo è una caratteristica dell'OOP. È la capacità di creare una variabile, un oggetto o una funzione con più forme. PL / SQL supporta il polimorfismo sotto forma di sovraccarico di unità di programma all'interno di una funzione membro o di un pacchetto ... La logica non ambigua deve essere evitata durante il sovraccarico.

45) Quali sono gli utilizzi di MERGE?

MERGE viene utilizzato per combinare più istruzioni DML in una sola.

Sintassi: merge into tablename

utilizzando (query)

su (condizione di unione)

quando non sono abbinati allora

comando [inserisci / aggiorna / elimina]

quando abbinato allora

comando [inserisci / aggiorna / elimina]

46) È possibile eseguire 2 query contemporaneamente in un sistema di database distribuito?

Sì, possono essere eseguiti contemporaneamente. Una query è sempre indipendente dalla seconda query in un sistema di database distribuito basato sul commit in 2 fasi.

47) Spiega Raise_application_error.

È una procedura del pacchetto DBMS_STANDARD che consente l'emissione di messaggi di errore definiti dall'utente dal trigger del database o dal sottoprogramma memorizzato.

48) Qual è il parametro out utilizzato per anche se l'istruzione return può essere utilizzata anche in pl / sql?

I parametri Out consentono più di un valore nel programma chiamante. Il parametro Out non è consigliato nelle funzioni. Le procedure possono essere utilizzate al posto delle funzioni se sono richiesti più valori. Pertanto, queste procedure vengono utilizzate per eseguire i parametri Out.

49) Come convertiresti la data nel formato della data giuliana?

Possiamo usare la stringa di formato J:

SQL> seleziona to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') come julian da dual;

JULIAN

50) Spiega BOBINA

Il comando di spool può stampare l'output delle istruzioni sql in un file.

spool / tmp / sql_outtxt

seleziona smp_name, smp_id da smp dove dept = 'accounts';

spool off;

51) Indicare in cosa consiste il pacchetto PL / SQL?

Un pacchetto PL / SQL è costituito da

  • Tabella PL / SQL e istruzioni TYPE record
  • Procedure e funzioni
  • Cursori
  • Variabili (tabelle, scalari, record, ecc.) E costanti
  • Nomi di eccezione e pragma per correlare un numero di errore con un'eccezione
  • Cursori

52) Indica quali sono i vantaggi dei pacchetti PL / SQL?

Fornisce diversi vantaggi come

  • Occultamento forzato delle informazioni: offre la libertà di scegliere se mantenere i dati privati ​​o pubblici
  • Progettazione top-down: è possibile progettare l'interfaccia in base al codice nascosto nel pacchetto prima di implementare effettivamente i moduli stessi
  • Persistenza degli oggetti : gli oggetti dichiarati in una specifica del pacchetto si comportano come dati globali per tutti gli oggetti PL / SQL nell'applicazione. È possibile modificare il pacchetto in un modulo e quindi fare riferimento a tali modifiche a un altro modulo
  • Design orientato agli oggetti: il pacchetto offre agli sviluppatori un forte controllo su come i moduli e le strutture dati all'interno del pacchetto possono essere utilizzati
  • Garantire l'integrità delle transazioni: fornisce un livello di integrità delle transazioni
  • Miglioramento delle prestazioni: RDBMS tiene traccia automaticamente della validità di tutti gli oggetti del programma memorizzati nel database e migliora le prestazioni dei pacchetti.

53) Indicare quali sono i diversi metodi per tracciare il codice PL / SQL?

La traccia del codice è una tecnica fondamentale per misurare le prestazioni del codice durante il runtime. Diversi metodi per la traccia includono

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION e DBMS_MONITOR
  • utilità trcsess e tkproof

54) Indica cosa fa il profiler gerarchico?

Il profiler gerarchico potrebbe profilare le chiamate effettuate in PL / SQL, oltre a colmare il divario tra le scappatoie e le aspettative di tracciamento delle prestazioni. L'efficienza del profiler gerarchico include

  • Report distinti per il consumo di tempo SQL e PL / SQL
  • I rapporti contano le chiamate di sottoprogrammi distinti effettuate in PL / SQL e il tempo trascorso con ciascuna chiamata di sottoprogramma
  • Report analitici interattivi multipli in formato HTML utilizzando l'utilità della riga di comando
  • Più efficace del profiler convenzionale e di altre utilità di traccia

55) Indica cosa ti permette di fare PLV msg?

Il messaggio PLV ti consente di

  • Assegna un singolo messaggio di testo alla riga specificata nella tabella PL / SQL
  • Recupera il testo del messaggio in base al numero
  • Sostituisce automaticamente i tuoi messaggi con i messaggi di errore Oracle standard con l'opzione di limitazione
  • Batch carica i numeri dei messaggi e il testo da una tabella di database direttamente tabella PLV msg PL / SQL

56) Indica cosa offre il pacchetto PLV (PL / Vision)?

  • Valore di sostituzione nullo
  • Insieme di routine di asserzione
  • Utilità varie
  • Insieme di costanti utilizzate in tutta la visione PL
  • Tipi di dati predefiniti
  • 57) Indica qual è l'uso di PLVprs e PLVprsps?
  • PLVprs: è un'estensione per l'analisi delle stringhe per PL / SQL ed è il livello più basso di funzionalità di analisi delle stringhe
  • PLVprsps: è il pacchetto di livello più alto per analizzare il codice sorgente PL / SQL in atomics separati. Si basa su altri pacchetti di analisi per portare a termine il lavoro.

58) Spiegare come copiare in anticipo un file nel contenuto del file e un file nella tabella PL / SQL PL / SQL?

Con una singola chiamata al programma - " fcopy procedure", è possibile copiare l'intero contenuto di un file in un altro file. Mentre per copiare il contenuto di un file direttamente in una tabella PL / SQL, è possibile utilizzare il programma " file2pstab" .

59) Spiegare in anticipo come viene eseguita la gestione delle eccezioni PL / SQL?

Per la gestione delle eccezioni PL / SQl fornisce un plug-in efficace PLVexc. PLVexc supporta quattro diverse azioni di gestione delle eccezioni.

  • Continua l'elaborazione
  • Registra e poi continua
  • Interrompere l'elaborazione
  • Registra e poi interrompi l'elaborazione

Per quelle eccezioni che si ripresentano è possibile utilizzare l'istruzione RAISE.

60) Indicare quale problema si potrebbe incontrare durante la scrittura delle informazioni di registro su una tabella di database in PL / SQL?

Durante la scrittura delle informazioni di registro in una tabella di database, il problema da affrontare è che le informazioni sono disponibili solo dopo che le nuove righe sono state salvate nel database. Questo potrebbe essere un problema in quanto tale PLVlog viene solitamente distribuito per tenere traccia degli errori e in molti di questi casi la transazione corrente fallirebbe o altrimenti richiederebbe un rollback.

61) Indicare qual è la funzione utilizzata per trasferire un registro di una tabella PL / SQL in una tabella di database?

Per trasferire un registro di una tabella PL / SQL viene utilizzata una funzione di tabella di registro del database "PROCEDURA ps2db" .

62) Quando devi usare un "rollback a" savepoint predefinito di PLVlog?

Il punto di salvataggio predefinito "rollback a" di PLVlog viene utilizzato quando gli utenti hanno attivato l'attività di rollback e non hanno fornito un punto di salvataggio alternativo nella chiamata a put_line. Il punto di salvataggio predefinito viene inizializzato sulla costante c none.

63) Perché PLVtab è considerato il modo più semplice per accedere alla tabella PL / SQL?

Le tabelle PL / SQL sono le più vicine agli array in PL / SQL e per accedere a questa tabella devi prima dichiarare un tipo di tabella, quindi devi dichiarare la tabella PL / SQL stessa. Tuttavia, utilizzando PLVtab, è possibile evitare di definire il proprio tipo di tabella PL / SQL e semplificare l'accesso alla tabella dati PL / SQL.

64) Menziona cosa ti permette di fare PLVtab quando mostri il contenuto delle tabelle PL / SQL?

PLVtab ti consente di eseguire le seguenti operazioni quando mostri il contenuto delle tabelle PL / SQL

  • Visualizza o sopprime un'intestazione per la tabella
  • Visualizza o sopprime i numeri di riga per i valori della tabella
  • Mostra un prefisso prima di ogni riga della tabella

65) Spiega come puoi salvare o posizionare il tuo messaggio in una tabella?

Per salvare msg in una tabella, puoi farlo in due modi

  • Carica singoli messaggi con chiamate alla procedura add_text
  • Carica serie di messaggi da una tabella di database con la procedura load_from_dbms

66) Indicare a cosa serve la funzione "procedura modulo" in PL / SQL?

La "procedura del modulo" consente di convertire tutte le righe di codice in una determinata unità di programma con una chiamata di procedura. Ci sono tre argomenti per i moduli

  • module_in
  • cor_in
  • Last_module_in

67) Menzionate cosa fanno PLVcmt e PLVrb in PL / SQL?

PL / Vision offre due pacchetti che aiutano a gestire l'elaborazione delle transazioni nell'applicazione PL / SQL. È PLVcmt e PLVrb.

  • PLVcmt: il pacchetto PLVcmt racchiude la logica e la complessità per gestire l'elaborazione del commit
  • PLVrb: fornisce un'interfaccia programmatica per eseguire il rollback dell'attività in PL / SQL