65 preguntas y respuestas de la entrevista PL/SQL (2026)
Preguntas y respuestas de la entrevista PL/SQL para principiantes
1) ยฟQuรฉ es PL SQL?
Oracle PL/SQL es una extensiรณn del lenguaje SQL que combina el poder de manipulaciรณn de datos de SQL con el poder de procesamiento del lenguaje procedimental para crear consultas SQL sรบper poderosas. PL/SQL garantiza un procesamiento fluido de declaraciones SQL al mejorar la seguridad, portabilidad y solidez de la base de datos.
PL/SQL significa "Extensiones del lenguaje de procedimiento al lenguaje de consulta estructurado".
๐ Descarga gratuita de PDF: Preguntas y respuestas de la entrevista PL/SQL
2) Diferenciar entre % TIPO DE FILA y TIPO DE REGISTRO.
% TIPO DE FILA se utiliza cuando una consulta devuelve una fila completa de una tabla o vista.
TIPO DE REGISTRO por otro lado, se utiliza cuando una consulta devuelve una columna de diferentes tablas o vistas.
P.ej. TIPO r_emp es REGISTRO (sno smp.smpno% tipo, nombre smp nombre % tipo)
% de smp e_recTIPO DE FILA
El cursor c1 es seleccionar smpno,dept de smp;
e_recc1 %TIPO DE FILA
3) Explicar los usos del cursor.
El cursor es un รกrea privada con nombre en SQL desde la cual se puede acceder a la informaciรณn. Deben procesar cada fila individualmente para consultas que devuelven varias filas.
4) Mostrar cรณdigo de un cursor para bucle.
El cursor declara %ROWTYPE como รญndice de bucle de forma implรญcita. A continuaciรณn, abre un cursor, obtiene filas de valores del conjunto activo en los campos del registro y se cierra cuando se procesan todos los registros.
Por ejemplo.
FOR smp_rec IN C1 LOOP totalsal=totalsal+smp_recsal; ENDLOOP;
5) Explicar los usos del disparador de base de datos.
Una unidad de programa PL/SQL asociada con una tabla de base de datos particular se denomina disparador de base de datos. Se utiliza para :
1) Modificaciones de datos de auditorรญa.
2) Registrar eventos de forma transparente.
3) Hacer cumplir reglas comerciales complejas.
4) Mantener tablas de rรฉplica
5) Derivar valores de columna
6) Implementar autorizaciones de seguridad complejas
6) ยฟCuรกles son los dos tipos de excepciones?
La parte de manejo de errores del bloque PL/SQL se llama excepciรณn. Tienen dos tipos: definidos por el usuario y predefinidos.
7) Mostrar algunas excepciones predefinidas.
DUP_VAL_ON_INDEX
ZERO_DIVIDE
DATOS NO ENCONTRADOS
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
NรMERO INVALIDO
INVALID_CURSOR
ERROR_PROGRAMA
TIEMPO DE ESPERA _ON_RESOURCE
ALMACENAMIENTO_ERROR
INICIO DE SESIรN DENEGADO
VALOR_ERROR
etc.
8) Explique Raise_application_error.
Es un procedimiento del paquete DBMS_STANDARD que permite la emisiรณn de mensajes de error definidos por el usuario desde el disparador de la base de datos o el subprograma almacenado.
9) Muestre cรณmo se llaman funciones y procedimientos en un bloque PL SQL.
La funciรณn se llama como parte de una expresiรณn.
total:=calculate_sal('b644')
El procedimiento se llama como una declaraciรณn en PL / SQL.
calculate_bonus('b644');
10) Explique dos tablas virtuales disponibles en el momento de la ejecuciรณn del activador de la base de datos.
Las columnas de la tabla se denominan ANTIGUO.nombre_columna y NUEVO.nombre_columna.
Para los activadores relacionados con INSERT, los valores NEW.column_name solo estรกn disponibles.
Para los activadores relacionados con DELETE, los valores OLD.column_name solo estรกn disponibles.
Para los activadores relacionados con ACTUALIZAR, ambas columnas de la tabla estรกn disponibles.
11) ยฟCuรกles son las reglas que se aplicarรกn a los NULL al realizar comparaciones?
1) NULL nunca es VERDADERO o FALSO
2) NULL no puede ser igual o diferente a otros valores
3) Si un valor en una expresiรณn es NULL, entonces la expresiรณn en sรญ misma se evalรบa como NULL excepto por el operador de concatenaciรณn (||)
12) ยฟCรณmo se compila un proceso de PL SQL?
El proceso de compilaciรณn incluye procesos de verificaciรณn de sintaxis, vinculaciรณn y generaciรณn de cรณdigo p.
La verificaciรณn de sintaxis verifica los cรณdigos PL SQL en busca de errores de compilaciรณn. Cuando se corrigen todos los errores, se asigna una direcciรณn de almacenamiento a las variables que contienen datos. Se llama vinculante. El cรณdigo P es una lista de instrucciones para el motor PL SQL. El cรณdigo P se almacena en la base de datos para los bloques con nombre y se utiliza la prรณxima vez que se ejecuta.
13) Diferenciar entre errores de sintaxis y de tiempo de ejecuciรณn.
Un compilador PL/SQL puede detectar fรกcilmente un error de sintaxis. Por ejemplo, ortografรญa incorrecta.
Un error de tiempo de ejecuciรณn se maneja con la ayuda de la secciรณn de manejo de excepciones en un Bloque PL / SQL. Por ejemplo, la instrucciรณn SELECT INTO, que no devuelve ninguna fila.
14) Explique la confirmaciรณn, la reversiรณn y el punto de guardado.
Para una declaraciรณn COMMIT, lo siguiente es verdadero:
- Otros usuarios pueden ver los cambios de datos realizados por la transacciรณn.
- Se liberan los bloqueos adquiridos por la transacciรณn.
- El trabajo realizado por la transacciรณn se vuelve permanente.
Se emite una declaraciรณn ROLLBACK cuando finaliza la transacciรณn y lo siguiente es verdadero.
- El trabajo realizado en una transiciรณn se deshace como si nunca se hubiera emitido.
- Se liberan todos los bloqueos adquiridos mediante transacciรณn.
Deshace todo el trabajo realizado por el usuario en una transacciรณn. Con SAVEPOINT, sรณlo se puede deshacer una parte de la transacciรณn.
15) Definir cursores implรญcitos y explรญcitos.
Un cursor estรก implรญcito por defecto. El usuario no puede controlar ni procesar la informaciรณn de este cursor.
Si una consulta devuelve varias filas de datos, el programa define un cursor explรญcito. Esto permite que la aplicaciรณn procese cada fila secuencialmente a medida que el cursor la devuelve.
16) Explique el error de la tabla mutante.
Ocurre cuando un disparador intenta actualizar una fila que estรก utilizando actualmente. Se soluciona mediante el uso de vistas o tablas temporales, por lo que la base de datos selecciona una y actualiza la otra.
17) ยฟCuรกndo se requiere una declaraciรณn de declaraciรณn?
La declaraciรณn DECLARE es utilizada por bloques anรณnimos de PL SQL, como por ejemplo con procedimientos independientes y no almacenados. Si se utiliza, debe aparecer primero en un archivo independiente.
18) ยฟCuรกntos activadores se pueden aplicar a una mesa?
Se puede aplicar un mรกximo de 12 activadores a una tabla.
19) ยฟCuรกl es la importancia de SQLCODE y SQLERRM?
SQLCODE devuelve el valor del nรบmero de error del รบltimo error encontrado, mientras que SQLERRM devuelve el mensaje del รบltimo error.
20) Si un cursor estรก abierto, ยฟcรณmo podemos encontrarlo en un bloque PL SQL?
se puede utilizar la variable de estado del cursor %ISOPEN.
Preguntas de la entrevista PL/SQL para experimentados
21) Muestra las dos excepciones del cursor PL/SQL.
Cursor_ya_abierto
Cursor_invรกlido
22) ยฟQuรฉ operadores tratan con NULL?
NVL convierte NULL a otro valor especificado.
var:=NVL(var2,'Hi');
IS NULL y IS NOT NULL se pueden utilizar para comprobar especรญficamente si el valor de una variable es NULL o no.
23) ยฟSQL*Plus tambiรฉn tiene un motor PL/SQL?
No, SQL*Plus no tiene un motor PL/SQL integrado. Por lo tanto, todo el cรณdigo PL/SQL se envรญa directamente al motor de base de datos. Es mucho mรกs eficiente ya que cada declaraciรณn no se elimina individualmente.
24) ยฟQuรฉ paquetes estรกn disponibles para los desarrolladores de PL SQL?
DBMS_ serie de paquetes, como DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.
25) Explica 3 partes bรกsicas de un disparador.
- Una declaraciรณn o evento desencadenante.
- Una restricciรณn
- Una acciรณn
26) ยฟQuรฉ son las funciones de los personajes?
INITCAP, UPPER, SUBSTR, LOWER y LENGTH son todas funciones de caracteres. Las funciones de grupo dan resultados basados โโen grupos de filas, en lugar de filas individuales. Son MAX, MIN, AVG, CONTAR y SUMAR.
27) Explique TรTULO y BรTULO.
Comandos TTITLE y BTITLE que controlan los encabezados y pies de pรกgina de los informes.
28) Mostrar los atributos del cursor de PL/SQL.
%ISOPEN: Comprueba si el cursor estรก abierto o no.
%ROWCOUNT: El nรบmero de filas que se actualizan, eliminan o recuperan.
%FOUND: Comprueba si el cursor ha recuperado alguna fila. Es cierto si se recuperan filas.
%NOT FOUND: Comprueba si el cursor ha recuperado alguna fila. Es Verdadero si no se recuperan las filas.
29) ยฟQuรฉ es una intersecciรณn?
Intersect es el producto de dos tablas y solo enumera filas coincidentes.
30) ยฟQuรฉ son las secuencias?
Las secuencias se utilizan para generar nรบmeros de secuencia sin la sobrecarga de bloqueo. Su inconveniente es que el nรบmero de secuencia se pierde si se revierte la transacciรณn.
31) ยฟCรณmo harรญa referencia a los valores de las columnas ANTES y DESPUรS de haber insertado y eliminado activadores?
Usando la palabra clave "nuevo.nombre de columna", los activadores pueden hacer referencia a valores de columna por nueva colecciรณn. Al utilizar la palabra clave "nombre de columna anterior", pueden hacer referencia a los valores de las columnas por colecciรณn anterior.
32) ยฟCuรกles son los usos de las palabras clave SYSDATE y USER?
SYSDATE se refiere a la fecha actual del sistema del servidor. Es una pseudocolumna. USUARIO tambiรฉn es una pseudocolumna pero se refiere al usuario actual que iniciรณ sesiรณn. Se utilizan para monitorear los cambios que ocurren en la tabla.
33) ยฟCรณmo ayuda ROWID a ejecutar una consulta mรกs rรกpido?
ROWID es la direcciรณn lรณgica de una fila, no es una columna fรญsica. Se compone de nรบmero de bloque de datos, nรบmero de archivo y nรบmero de fila en el bloque de datos. Por lo tanto, el tiempo de E/S se minimiza al recuperar la fila y da como resultado una consulta mรกs rรกpida.
34) ยฟPara quรฉ se utilizan los enlaces de bases de datos?
Los enlaces de bases de datos se crean para establecer comunicaciรณn entre varias bases de datos o diferentes entornos como prueba, desarrollo y producciรณn. Los enlaces de la base de datos son de solo lectura para acceder tambiรฉn a otra informaciรณn.
35) ยฟQuรฉ hace buscar un cursor?
Al recuperar un cursor se lee el conjunto de resultados fila por fila.
36) ยฟQuรฉ hace cerrar un cursor?
Al cerrar un cursor se borra el รกrea privada de SQL y se desasigna memoria.
37) Explicar los usos del Archivo de Control.
Es un archivo binario. Registra la estructura de la base de datos. Incluye ubicaciones de varios archivos de registro, nombres y marcas de tiempo. Se pueden almacenar en diferentes ubicaciones para ayudar a recuperar informaciรณn si un archivo se daรฑa.
38) Explica la coherencia
La coherencia muestra que los datos no se reflejarรกn a otros usuarios hasta que se confirmen, de modo que se mantenga la coherencia.
39) Diferenciar entre bloques anรณnimos y subprogramas.
Los bloques anรณnimos son bloques sin nombre que no se almacenan en ningรบn lugar mientras los subprogramas se compilan y almacenan en la base de datos. Se compilan en tiempo de ejecuciรณn.
40) Diferenciar entre DECODIFICAR y CASO.
Las declaraciones DECODE y CASE son muy similares, pero CASE es una versiรณn extendida de DECODE. DECODE no permite declaraciones de toma de decisiones en su lugar.
seleccione decode(totalsal=12000,โhighโ,10000,โmediumโ) como decode_tesr de smp donde smpno en (10,12,14,16);
Esta declaraciรณn devuelve un error.
CASE se usa directamente en PL SQL, pero DECODE se usa en PL SQL solo a travรฉs de SQL.
41) Explique la transacciรณn autรณnoma.
Una transacciรณn autรณnoma es una transacciรณn independiente de la transacciรณn principal o matriz. No estรก anidado si lo inicia otra transacciรณn.
Existen varias situaciones para utilizar transacciones autรณnomas, como el registro de eventos y la auditorรญa.
42) Diferenciar entre SGA y PGA.
SGA significa รrea global del sistema, mientras que PGA significa รrea global de programa o proceso. A PGA solo se le asigna un tamaรฑo de RAM del 10%, pero a SGA se le asigna un tamaรฑo de RAM del 40%.
43) ยฟCuรกl es la ubicaciรณn de las funciones_pre_definidas?
Se almacenan en el paquete estรกndar llamado โFunciones, Procedimientos y Paquetesโ
44) Explicar el polimorfismo en PL SQL.
El polimorfismo es una caracterรญstica de la programaciรณn orientada a objetos. Es la capacidad de crear una variable, un objeto o funciรณn con mรบltiples formas. PL/SQL admite polimorfismo en forma de sobrecarga de unidades de programa dentro de una funciรณn miembro o paquete. Se debe evitar una lรณgica inequรญvoca mientras se realiza la sobrecarga.
45) ยฟCuรกles son los usos de MERGE?
MERGE se utiliza para combinar varias declaraciones DML en una.
Sintaxis: fusionar en nombre de tabla
usando (consulta)
encendido (condiciรณn de uniรณn)
cuando no coincide entonces
Comando [insertar/actualizar/eliminar]
cuando coincide entonces
Comando [insertar/actualizar/eliminar]
Preguntas de la entrevista PL/SQL para mรกs de 5 aรฑos de experiencia
46) ยฟSe pueden ejecutar 2 consultas simultรกneamente en un sistema de base de datos distribuida?
Sรญ, se pueden ejecutar simultรกneamente. Una consulta siempre es independiente de la segunda consulta en un sistema de base de datos distribuida basado en la confirmaciรณn en dos fases.
47) Explique Raise_application_error.
Es un procedimiento del paquete DBMS_STANDARD que permite emitir mensajes de error definidos por el usuario desde el disparador de la base de datos o el subprograma almacenado.
48) ยฟPara quรฉ se utiliza el parรกmetro out aunque la declaraciรณn de retorno tambiรฉn se puede utilizar en pl/sql?
Los parรกmetros de salida permiten mรกs de un valor en el programa de llamada. El parรกmetro out no se recomienda en funciones. Se pueden utilizar procedimientos en lugar de funciones si se requieren varios valores. Por tanto, estos procedimientos se utilizan para ejecutar parรกmetros de salida.
49) ยฟCรณmo convertirรญas la fecha al formato de fecha juliana?
Podemos usar la cadena en formato J:
SQL> seleccione to_char(to_date('29-Mar-2013โฒ,'dd-mon-yyyy'),'J') como julian de dual;
JULIAN
50) Explicar CARRETE
El comando spool puede imprimir la salida de declaraciones SQL en un archivo.
carrete/tmp/sql_outtxt
seleccione smp_name, smp_id de smp donde departamento=โcuentasโ;
carrete
51) Mencione en quรฉ consiste el paquete PL/SQL.
Un paquete PL/SQL consta de
- Tabla PL/SQL y declaraciones TYPE de registro
- Procedimientos y Funciones
- Cursores
- Variables (tablas, escalares, registros, etc.) y constantes
- Nombres de excepciรณn y pragmas para relacionar un nรบmero de error con una excepciรณn
- Cursores
52) Mencione cuรกles son los beneficios de los paquetes PL/SQL.
Proporciona varios beneficios como
- Ocultaciรณn de informaciรณn forzada: Ofrece la libertad de elegir si mantener los datos privados o pรบblicos.
- Diseรฑo de arriba hacia abajo: Puede diseรฑar la interfaz para el cรณdigo oculto en el paquete antes de implementar los mรณdulos.
- Persistencia de objetos: Los objetos declarados en una especificaciรณn de paquete se comportan como datos globales para todos los objetos PL/SQL en la aplicaciรณn. Puede modificar el paquete en un mรณdulo y luego hacer referencia a esos cambios a otro mรณdulo.
- Diseรฑo orientado a objetos: El paquete ofrece a los desarrolladores un control sรณlido sobre cรณmo se pueden utilizar los mรณdulos y las estructuras de datos dentro del paquete.
- Garantizar la integridad de las transacciones: Proporciona un nivel de integridad de las transacciones.
- Mejora del rendimiento: El RDBMS rastrea automรกticamente la validez de todos los objetos del programa almacenados en la base de datos y mejora el rendimiento de los paquetes.
53) Mencione cuรกles son los diferentes mรฉtodos para rastrear el cรณdigo PL/SQL.
El seguimiento del cรณdigo es una tรฉcnica crucial para medir el rendimiento del cรณdigo durante el tiempo de ejecuciรณn. Los diferentes mรฉtodos de seguimiento incluyen
- DBMS_APPLICATION_INFO
- DBMS_TRACE
- DBMS_SESSION y DBMS_MONITOR
- utilidades trcsess y tkproof
54) Mencione quรฉ hace el perfilador jerรกrquico.
El perfilador jerรกrquico podrรญa perfilar las llamadas realizadas en PL/SQL, ademรกs de llenar el vacรญo entre las lagunas y las expectativas de seguimiento del rendimiento. Las eficiencias del perfilador jerรกrquico incluyen
- Informes distintos para SQL y consumo de tiempo de PL/SQL
- Informes del recuento de distintas llamadas a subprogramas realizadas en PL/SQL y el tiempo dedicado a cada llamada a subprograma.
- Mรบltiples informes analรญticos interactivos en formato HTML mediante la utilidad de lรญnea de comandos
- Mรกs efectivo que el generador de perfiles convencional y otras utilidades de rastreo
55) Menciona ยฟquรฉ te permite hacer el mensaje PLV?
El mensaje PLV le permite
- Asignar mensaje de texto individual a la fila especificada en la tabla PL/SQL
- Recupera el texto del mensaje por nรบmero.
- Sustituye automรกticamente tus propios mensajes por estรกndar Oracle mensajes de error con alternancia de restricciรณn
- Cargar por lotes nรบmeros de mensajes y texto desde una tabla de base de datos directamente PLV msg PL/SQL table
56) Mencione quรฉ ofrece el paquete PLV (PL/Vision).
- Valor de sustituciรณn nulo
- Conjunto de rutinas de aserciรณn.
- Utilidades varias
- Conjunto de constantes utilizadas en toda la visiรณn PL.
- Tipos de datos predefinidos
57) Mencione ยฟpara quรฉ sirven los PLVprs y PLVprsps?
- PLVprs: Es una extensiรณn para el anรกlisis de cadenas para PL/SQL y es el nivel mรกs bajo de funcionalidad de anรกlisis de cadenas.
- PLVprsps: Es el paquete de nivel mรกs alto para analizar el cรณdigo fuente PL/SQL en fragmentos separados. Depende de otros paquetes de anรกlisis para realizar su trabajo.
58) Explique cรณmo se puede copiar un archivo al contenido del archivo y un archivo a la tabla PL/SQL por adelantado en PL/SQL.
Con una sola llamada de programa โ โprocedimiento de copiaโ, puede copiar el contenido completo de un archivo en otro archivo. Mientras que para copiar el contenido de un archivo directamente en una tabla PL/SQL, puedes utilizar el programa โarchivo2pstabโ.
59) Explique cรณmo se realiza el manejo de excepciones por adelantado en PL/SQL.
Para manejo de excepciones PL/SQL proporciona un complemento eficaz PLVexc. PLVexc admite cuatro acciones diferentes de manejo de excepciones.
- Continuar procesando
- Grabar y luego continuar.
- Detener el procesamiento
- Grabar y luego detener el procesamiento
Para aquellas excepciones que vuelven a ocurrir, puede utilizar la declaraciรณn RAISE.
60) Mencione quรฉ problema se podrรญa enfrentar al escribir informaciรณn de registro en una tabla de base de datos en PL/SQL.
Al escribir informaciรณn de registro en una tabla de base de datos, el problema al que se enfrenta es que la informaciรณn solo estรก disponible una vez que las nuevas filas se confirman en la base de datos. Esto puede ser un problema, ya que PLVlog generalmente se implementa para realizar un seguimiento de los errores y, en muchos de esos casos, la transacciรณn actual fallarรญa o necesitarรญa una reversiรณn.
61) Mencione cuรกl es la funciรณn que se utiliza para transferir un registro de tabla PL/SQL a una tabla de base de datos.
Para transferir una tabla PL/SQL, registre una funciรณn de tabla de registro de base de datos โPROCEDIMIENTO ps2dbโ se utiliza.
62) ยฟCuรกndo tienes que usar un punto de guardado predeterminado de PLVlog para โrevertir aโ?
El punto de guardado predeterminado "revertir a" de PLVlog se utiliza cuando los usuarios han activado la actividad de reversiรณn y no han proporcionado un punto de guardado alternativo en la llamada a put_line. El punto de guardado predeterminado se inicializa con la constante c none.
63) ยฟPor quรฉ se considera que PLVtab es la forma mรกs sencilla de acceder a la tabla PL/SQL?
Las tablas PL/SQL son las mรกs cercanas a las matrices en PL/SQL, y para acceder a esta tabla primero debe declarar un tipo de tabla y luego debe declarar la tabla PL/SQL. Pero al usar PLVtab, puede evitar definir su propio tipo de tabla PL/SQL y facilitar el acceso a la tabla de datos PL/SQL.
64) Mencione quรฉ le permite hacer PLVtab cuando muestra el contenido de las tablas PL/SQL.
PLVtab le permite hacer las siguientes cosas cuando muestra el contenido de las tablas PL/SQL
- Mostrar o suprimir un encabezado de la tabla
- Mostrar o suprimir los nรบmeros de fila de los valores de la tabla
- Mostrar un prefijo antes de cada fila de la tabla
65) Explica cรณmo puedes guardar o colocar tu mensaje en una tabla.
Para guardar mensajes en una tabla, puedes hacerlo de dos maneras.
- Cargar mensajes individuales con llamadas al
add_textprocedimientos - Cargue conjuntos de mensajes desde una tabla de base de datos con el
load_from_dbmsprocedimientos
66) Mencione ยฟcuรกl es el uso de la funciรณn โprocedimiento de mรณduloโ en PL/SQL?
El "procedimiento de mรณdulo" permite convertir todas las lรญneas de cรณdigo en una unidad de programa definida con una sola llamada al procedimiento. Hay tres argumentos para los mรณdulos.
- mรณdulo_in
- cor_in
- Last_module_in
67) Mencione quรฉ hacen PLVcmt y PLVrb en PL/SQL.
PL/Vision ofrece dos paquetes que le ayudan a gestionar el procesamiento de transacciones en la aplicaciรณn PL/SQL. Son PLVcmt y PLVrb.
- PLVcmt: El paquete PLVcmt envuelve la lรณgica y la complejidad para manejar el procesamiento de confirmaciones
- PLVrb: Proporciona una interfaz programรกtica para revertir la actividad en PL/SQL.
Estas preguntas de la entrevista tambiรฉn te ayudarรกn en tu viva(orals)
