30 most important pl sql interview questions
Preguntes principals sobre les entrevistes PL / SQL amb exemples per ajudar-vos a preparar la propera entrevista:
Què és PL / SQL?
PL / SQL (Llenguatge de procediment / SQL) és bàsicament una extensió de procediment d’Oracle - SQL. PL / SQL ajuda l'usuari a desenvolupar aplicacions de bases de dades complexes mitjançant estructures de control, procediments, funcions, mòduls, etc.
En aquest article es parlarà de les preguntes i respostes més freqüents de les entrevistes PL / SQL.
Preguntes i respostes d’entrevistes PL / SQL
Comencem!!
P # 1) Diferenciar PL / SQL i SQL?
Resposta: La diferència entre SQL i PL / SQL es pot classificar de la següent manera:
SQL | PL / SQL |
---|---|
SQL és un llenguatge natural molt útil per al processament interactiu. | PL / SQL és una extensió procedimental d'Oracle-SQL. |
SQL no ofereix cap capacitat de procediment, com la prova de condicions, el bucle l’ofereix SQL. | PL / SQL admet funcions de procediment, així com funcions de llenguatge elevat com a sentències condicionals, sentències de bucle, etc. |
Totes les sentències SQL les executa el servidor de bases de dades d'una en una, per tant és un procés que requereix molt de temps. | Les sentències PL / SQL envien tot el bloc d’instruccions al servidor de base de dades alhora, de manera que es redueix considerablement el trànsit de xarxa. |
No hi ha procediments de manipulació d'errors a SQL. | PL / SQL admet la gestió d'errors personalitzada. |
P # 2) Enumereu les característiques de PL / SQL?
Resposta:
Les característiques de PL / SQL són les següents:
- PL / SQL permet accedir i compartir els mateixos subprogrames per diverses aplicacions.
- És conegut per la portabilitat del codi, ja que el codi es pot executar en qualsevol sistema operatiu sempre que Oracle hi estigui carregat.
- Amb PL / SQL, els usuaris poden escriure les seves pròpies rutines personalitzades de manipulació d'errors.
- Millora del rendiment de les transaccions amb la integració al diccionari de dades Oracle.
P # 3) Quins són els tipus de dades disponibles a PL / SQL?
Resposta: Els tipus de dades defineixen les maneres d’identificar el tipus de dades i les seves operacions associades.
Hi ha 4 tipus de tipus de dades predefinits explicats de la manera següent:
- Tipus de dades escalars: Un tipus de dades escalars és un tipus de dades atòmiques que no té cap component intern.
- Per exemple
- CHAR (interval de valors de caràcters de longitud fixa entre 1 i 32.767 caràcters)
- VARCHAR2 (interval de valors de caràcters de longitud variable entre 1 i 32.767 caràcters)
- NUMBER (valors decimals fixos, decimals flotants o enters)
- BOOLEAN (tipus de dades lògiques per als valors TRUE FALSE o NULL)
- DATA (emmagatzema informació sobre data i hora)
- LONG (dades de caràcters de longitud variable)
- Tipus de dades compostes: Un tipus de dades compost està format per altres tipus de dades i components interns que es poden utilitzar i manipular fàcilment. Per exemple, REGISTRE, TAULA i VARIA.
- Tipus de dades de referència: Un tipus de dades de referència conté valors, anomenats punteres, que designen altres elements del programa o elements de dades. Per exemple, REF CURSOR.
- Tipus de dades d'objectes grans: Un tipus de dades d'objectes grans conté valors, anomenats localitzadors, que defineixen la ubicació d'objectes grans (com ara clips de vídeo, imatge gràfica, etc.) emmagatzemats fora de línia.
- Per exemple
- BFILE (fitxer binari)
- BLOB (objecte gran binari)
- CLOB (objecte de caràcter gran)
- NCLOB (objecte gran tipus NCHAR)
Lectura recomanada = >> Tipus de dades PL SQL
Q # 4) Expliqueu la finalitat dels tipus de dades% TYPE i% ROWTYPE amb l'exemple?
Resposta: PL / SQL utilitza l'atribut de declaració% TYPE per a l'ancoratge. Aquest atribut proporciona el tipus de dades d'una variable, constant o columna. L'atribut% TYPE és útil en declarar una variable que té el mateix tipus de dades que una columna de taula.
Per exemple, la variable m_empno té el mateix tipus i mida de dades que la columna empno a taula emp.
m_empno emp.empno%TYPE;
L'atribut% ROWTYPE s'utilitza per declarar que una variable és un registre que té la mateixa estructura que una fila d'una taula. La fila es defineix com un registre i els seus camps tenen els mateixos noms i tipus de dades que les columnes de la taula o de la vista.
Per exemple:
dept_rec dept%ROWTYPE;
Això declara un registre que pot emmagatzemar una fila sencera per a la taula DEPT.
Q # 5) Què enteneu pels paquets PL / SQL?
Resposta: Els paquets PL / SQL són objectes d’esquema que agrupen funcions, procediments emmagatzemats, cursors i variables en un mateix lloc.
Els paquets tenen 2 parts obligatòries:
- Especificacions del paquet
- Cos del paquet
Q # 6) Què enteneu pels cursors PL / SQL?
Resposta: PL / SQL requereix una capacitat especial per recuperar i processar més d’una fila i aquest recurs es coneix com a cursors. Un cursor és un punter cap a l'àrea de context, que és una àrea de memòria que conté sentències SQL i informació per processar les sentències.
El cursor PL / SQL és bàsicament un mecanisme sota el qual se seleccionen diverses files de les dades de la base de dades i, a continuació, cada fila es processa individualment dins d’un programa.
Q # 7) Expliqueu els tipus de cursor.
converteix youtube a mp4 gratis en línia
Resposta: Hi ha dos tipus de cursors.
S'expliquen de la següent manera:
a) Cursors explícits: Per a les consultes que retornen més d'una fila, un programador declara i nomena un cursor explícit. Per utilitzar el cursor explícit a PL / SQL, es segueixen 4 passos
- Declareu el cursor
Sintaxi: CURSOR és
Instrucció SELECT;
Aquí hi ha el nom assignat al cursor i la sentència SELECT és la consulta que retorna les files al conjunt actiu del cursor.
- Obriu el cursor
Sintaxi: OBERT;
On, és el nom del cursor definit prèviament.
- Obtingueu files del cursor
Sintaxi: FETCH INTO;
Aquí, fa referència al nom del cursor definit prèviament des del qual s’estan recuperant les files.
representa la llista de variables que rebran les dades que s’estan recuperant.
- Tancant el cursor
Sintaxi: TANCA ;
Aquí teniu el nom del cursor tancat.
b) Cursors implícits: Quan s'executa qualsevol sentència SQL, PL / SQL crea automàticament un cursor sense definir que els cursors es coneguin com a cursors implícits.
Per a les següents afirmacions, PL / SQL utilitza cursors implícits
- INSERTAR
- ACTUALITZACIÓ
- ESBORRAR
- SELECT (consultes que retornen exactament una fila)
Q # 8) Quan fem servir els disparadors?
Resposta: La paraula 'Trigger' significa activar-se. A PL / SQL, el disparador és un procediment emmagatzemat que defineix una acció realitzada per la base de dades quan es realitza l'esdeveniment relacionat amb la base de dades.
Els activadors es requereixen principalment per als propòsits següents:
- Per mantenir restriccions d’integritat complexes
- Auditoria de la informació de la taula registrant els canvis
- Senyalitzar altres accions del programa quan es fan canvis a la taula
- Fer complir regles empresarials complexes
- Evitar transaccions no vàlides
P # 9) Expliqueu la diferència en l'execució dels activadors i dels procediments emmagatzemats?
Resposta: Un procediment emmagatzemat s’executa explícitament emetent una instrucció de trucada de procediment des d’un altre bloc mitjançant una trucada de procediment amb arguments.
El disparador s'executa de manera implícita cada vegada que es produeix un esdeveniment activador, com l'aparició d'instruccions DML.
Q # 10) Expliqueu la diferència entre desencadenants i restriccions?
Resposta: els activadors són diferents de les restriccions de les maneres següents:
Desencadenants | Restriccions |
---|---|
Afecta només les files afegides després que l'activador estigui activat. | Afecta totes les files de la taula, incloses les que ja existeixen quan la restricció està activada. |
Els activadors s’utilitzen per implementar regles empresarials complexes que no es poden implementar mitjançant restriccions d’integritat. | Les restriccions mantenen la integritat de la base de dades. |
Q # 11) Què és un bloc PL / SQL?
Resposta: A PL / SQL, les sentències s’agrupen en unitats anomenades blocs. Els blocs PL / SQL poden incloure constants, variables, sentències SQL, bucles, sentències condicionals, tractament d’excepcions. Els blocs també poden crear un procediment, una funció o un paquet.
A grans trets, Els blocs PL / SQL són de dos tipus:
(i) Blocs anònims: Els blocs PL / SQL sense capçalera es coneixen com a blocs anònims. Aquests blocs no formen el cos d’un procediment, una funció o desencadenants.
Exemple:
DECLARE num NUMBER(2); sq NUMBER(3); BEGIN num:= &Number1; sq := num*num; DBMS_OUTPUT.PUT_LINE(‘Square:’ ||sq); END;
(ii) Blocs anomenats: Els blocs PL / SQL que tenen capçalera o etiquetes es coneixen com a blocs amb nom. Els blocs anomenats poden ser subprogrames (procediments, funcions, paquets) o activadors.
Lectura recomanada = >> Funcions i procediments de PL SQL
Exemple:
FUNCTION sqr (num IN NUMBER) RETURN NUMBER is sq NUMBER(2); BEGIN sq:= num*num; RETURN sq; END;
P # 12) Diferenciar els errors de sintaxi i d'execució?
Resposta:
com implementar una taula de hash a Java
Errors de sintaxi són aquells que poden ser identificats fàcilment per un compilador PL / SQL. Aquests errors poden ser un error ortogràfic, etc.
Errors en temps d'execució són aquells errors del bloc PL / SQL per als quals s'ha d'incloure una secció de tractament d'excepcions per tractar els errors. Aquests errors poden ser sentència SELECT INTO que no retorna cap fila.
P # 13) Què són COMMIT, ROLLBACK i SAVEPOINT?
Resposta: COMMIT, SAVEPOINT i ROLLBACK són tres especificacions de transacció disponibles a PL / SQL.
Declaració COMMIT: Quan es realitza l'operació DML, només manipula les dades del buffer de base de dades i la base de dades no es veu afectada per aquests canvis. Per desar / emmagatzemar aquests canvis de transacció a la base de dades, hem de COMETIR la transacció. La transacció COMMIT desa tots els canvis pendents des de l'últim COMMIT i es produeix el següent procés
- Es publiquen els bloquejos de files afectats
- La transacció s'ha marcat com a completa
- Els detalls de la transacció s’emmagatzemen al diccionari de dades.
Sintaxi: COMPROMETRE;
Instrucció ROLLBACK: Quan volem desfer o esborrar tots els canvis que s’han produït en la transacció actual fins ara, hem de desfer la transacció. En altres paraules, ROLLBACK esborra tots els canvis pendents des de l'últim COMMIT o ROLLBACK.
Sintaxi per revertir completament una transacció:
ROLLBACK;
Declaració SAVEPOINT: La sentència SAVEPOINT dóna un nom i marca un punt en el processament de la transacció actual. Els canvis i bloquejos que s’han produït abans de SAVEPOINT a la transacció es conserven mentre es publiquen els que es produeixen després de SAVEPOINT.
Sintaxi:
SAVEPOINT;
P # 14) Què és la taula mutant i la taula de restricció?
Resposta: Una taula que actualment està sent modificada per una sentència DML com la definició de desencadenants en una taula es coneix com a Taula mutant .
Es coneix com a taula des de la qual es pot llegir per obtenir una restricció d’integritat referencial taula de restricció .
P # 15) Quins són els paràmetres reals i els paràmetres formals?
Resposta: Les variables o una expressió denominades paràmetres que apareixen a la declaració de trucada del procediment es coneix com a Paràmetres reals .
Per exemple: augmentar_sal (emp_num, mèrit + import);
A l'exemple anterior, emp_num i quantitat són els dos paràmetres reals.
Les variables declarades a la capçalera del procediment i a les quals es fa referència al cos del procediment s’anomenen Paràmetres formals .
Per exemple:
PROCEDIMENT raise_sal (emp_id INTEGER) IS
curr_sal REAL:
......... ..
COMENÇA
SELECCIONA sal A cur_sal FROM emp WHERE empno = emp_id;
.......
FI augmentar_sal;
Aquí, a l'exemple anterior, emp_id actua com a paràmetre formal.
P # 16) Quina diferència hi ha entre les sentències ROLLBACK i ROLLBACK TO?
Resposta: La transacció finalitza completament després de la instrucció ROLLBACK, és a dir, l’ordre ROLLBACK desfà completament una transacció i deixa tots els bloquejos.
D'altra banda, una transacció encara està activa i s'executa després de l'ordre ROLLBACK TO, ja que només es desfà una part de la transacció fins al SAVEPOINT indicat.
P # 17) Escriviu un script PL / SQL per mostrar la sèrie de números següent: 99,96,93 …… 9,6,3?
Resposta
SET SERVER OUTPUT ON DECLARE BEGIN FOR i IN REVERSE 1..99 LOOP IF Mod(i,3) = 0 THEN DBMS_OUTPUT.PUT_LINE(i); END IF; END LOOP; END; /
P # 18) Quins són els 3 modes de paràmetre?
Resposta: 3 modes del paràmetre són IN, OUT, IN OUT.
Es poden explicar de la següent manera:
- Paràmetres IN: Els paràmetres IN us permeten passar valors al procediment que es crida i es poden inicialitzar a valors predeterminats. Els paràmetres IN actuen com una constant i no se li pot assignar cap valor.
- Paràmetres OUT: Els paràmetres OUT retornen el valor a la persona que truca i s’han d’especificar. Els paràmetres OUT actuen com una variable no inicialitzada i no es poden utilitzar en una expressió.
- Paràmetres IN OUT: Els paràmetres IN OUT transmeten els valors inicials a un procediment i retornen els valors actualitzats a la persona que truca. Els paràmetres IN OUT actuen com una variable inicialitzada i se li ha d'assignar un valor.
P # 19) Per què% ISOPEN sempre és fals per a un cursor implícit?
Resposta: Un cursor implícit, l'atribut SQL% ISOPEN sempre és fals perquè el cursor implícit s'obre per a una sentència DML i es tanca immediatament després de l'execució de la sentència DML.
P # 20) Quan s'executa una sentència DML, en quins atributs de cursor es desa el resultat de la sentència?
Resposta: El resultat de la sentència es desa en 4 atributs de cursor.
Aquests són:
- SQL% TROBAT
- SQL% NO TROBAT
- SQL% ROWCOUNT
- SQL% ISOPEN
P # 21) Quines són les maneres de comentar en un codi PL / SQL?
Resposta: Els comentaris són el text que s’inclou amb el codi per millorar la llegibilitat i per a la comprensió del lector. Aquests codis no s’executen mai.
Hi ha dues maneres de comentar a PL / SQL:
1) Comentari d'una sola línia: Aquest comentari comença per doble -.
Exemple:
La persona
núm NÚMERO (2); - és una variable local.
COMENÇA
2) Comentari de diverses línies: Aquest comentari comença per / * i acaba amb * /.
java passa matriu al mètode per referència
Exemple:
COMENÇA
num: = & p_num; / * Aquesta és una variable d'amfitrió que s'utilitza al cos del programa * /
..........
FINAL
P # 22) Què enteneu per la gestió d'excepcions a PL / SQL?
Resposta: Quan es produeix un error a PL / SQL, es planteja l'excepció. Dit d'una altra manera, per gestionar situacions no desitjades en què els scripts PL / SQL finalitzessin inesperadament, s'inclou un codi de gestió d'errors al programa. A PL / SQL, tot el codi de gestió d’excepcions es col·loca en una secció EXCEPTION.
Hi ha 3 tipus d’EXCEPCIÓ:
- Excepcions predefinides: Errors habituals amb noms predefinits.
- Excepcions sense definir: Errors menys habituals sense noms predefinits.
- Excepcions definides per l'usuari: No causeu errors en temps d'execució, sinó que infringiu les regles empresarials.
P # 23) Voleu incloure algunes excepcions predefinides?
Resposta:
Algunes de les excepcions predefinides són:
- NO S'HAN TROBAT DADES: Instrucció SELECT d'una sola fila on no es retornen dades.
- TOO_MANY_ROWS: Instrucció SELECT de fila única on es retornen més d'una fila.
- INVALID_CURSOR: S'ha produït una operació il·legal del cursor.
- ZERO_DIVIDE: S'ha intentat dividir per zero.
P # 24) Quines són les excepcions del cursor PL / SQL?
Resposta:
Les excepcions relacionades amb els cursors PL / SQL són:
- CURSOR_ALREADY_OPEN
- INVALID_CURSOR
P # 25) Expliqueu la diferència entre el cursor declarat en els procediments i els cursors declarats a l'especificació del paquet?
Resposta: El cursor declarat al procediment es tracta com a local i, per tant, no es pot accedir a altres procediments.
El cursor declarat a l'especificació del paquet es tracta com a global i, per tant, es pot accedir mitjançant altres procediments.
P # 26) Què són ELS desencadenants?
Resposta: Els activadors INSTEAD OF són els activadors escrits especialment per modificar vistes, que no es poden modificar directament mitjançant sentències SQL DML.
P # 27) Què són les expressions?
Resposta: Les expressions es representen mitjançant una seqüència de literals i variables separades per operadors. A PL / SQL, les operacions s’utilitzen per manipular, comparar i calcular algunes dades. Una expressió és una composició d ''Operadors' i 'Operands'.
- Operands: Aquests són un argument per als operadors. Els operands poden ser una variable, una trucada de funció o una constant.
- Operadors: S’especifiquen les accions a realitzar als operadors. Exemple: '+', '*', Etc.
P # 28) Enumereu diferents tipus d’expressions amb l’exemple.
Resposta: Les expressions poden ser les següents:
- Expressions numèriques o aritmètiques: Exemple: 20 * 10 + 15
- Expressions booleanes: Exemple: 'Detectar' COM 'sp% t'
- Expressions de cadena: Exemple: DURADA (‘NEW YORK’ || ‘NY’)
- Expressions de dates: Exemple: SYSDATE> TO_DATE ('15 -NOV-16 ', 'dd-mm-aa')
P # 29) Escriviu un programa que mostri l'ús del bucle WHILE per calcular la mitjana de números introduïts per l'usuari i es deté l'entrada de més números introduint el número 0?
Resposta
DECLARE n NUMBER; avg NUMBER :=0 ; sum NUMBER :=0 ; count NUMBER :=0 ; BEGIN n := &enter_a_number; WHILE(n0) LOOP count := count+1; sum := sum+n; n := &enter_a_number; END LOOP; avg := sum/count; DBMS_OUTPUT.PUT_LINE(‘the average is’||avg); END;
P # 30) Què enteneu per PL / SQL Records?
Resposta: Els registres PL / SQL es poden referir a una col·lecció de valors o, per exemple, a un grup de diverses informacions, cadascun dels quals és de tipus més senzill i es pot relacionar entre si com a camps.
Hi ha tres tipus de registres admesos a PL / SQL:
- Registres basats en taules
- Registres basats en programadors
- Registres basats en el cursor
Conclusió
PL / SQL és molt extens pel que fa a l’aprenentatge i l’aplicació. Espero que aquestes preguntes i respostes de l’entrevista t’ajudin.
Per obtenir més informació sobre PL SQL, llegiu el nostre document complet Sèrie de tutorials PL / SQL .
Feliç aprenentatge !!
Lectura recomanada
- Preguntes i respostes de l’entrevista
- Preguntes i respostes d’entrevistes de proves ETL
- Top 30 de les preguntes i respostes més populars de l'entrevista de cogombre
- Top 30 de les preguntes i respostes de l’entrevista SAS
- Preguntes principals de l'entrevista d'Oracle: preguntes Oracle Basic, SQL, PL / SQL
- Top 30 de preguntes i respostes de les entrevistes de proves de seguretat
- Més de 30 preguntes i respostes de les entrevistes principals Scrum (LLISTA 2021)
- Top 30 de preguntes i respostes de l'entrevista SGBD