Las 65 preguntas principales de la entrevista PL / SQL y amp; Respuestas

Anonim

Descargar PDF

1) ¿Qué es PL SQL?

PL SQL es un lenguaje de procedimiento que tiene SQL interactivo, así como construcciones de lenguaje de programación de procedimiento como la ramificación condicional y la iteración.

2) Diferenciar entre% ROWTYPE y TYPE RECORD.

% ROWTYPE se usa cuando una consulta devuelve una fila completa de una tabla o vista.

TYPE RECORD, por otro lado, se usa cuando una consulta devuelve columnas de diferentes tablas o vistas.

P.ej. TYPE r_emp es RECORD (sno smp.smpno% type, sname smp sname% type)

e_rec smp% ROWTYPE

El cursor c1 es select smpno, departamento de smp;

e_rec c1% ROWTYPE

3) Explica los usos del cursor.

El cursor es un área privada con nombre en SQL desde la que se puede acceder a la información. Deben procesar cada fila individualmente para las consultas que devuelven varias filas.

4) Muestra el código de un cursor para bucle.

El cursor declara% ROWTYPE como índice de bucle implícitamente. Luego abre un cursor, obtiene filas de valores del conjunto activo en los campos del registro y se cierra cuando se procesan todos los registros.

P.ej. PARA smp_rec EN BUCLE C1

totalsal = totalsal + smp_recsal;

ENDLOOP;

5) Explique los usos del activador de base de datos.

Una unidad de programa PL / SQL asociada con una tabla de base de datos en particular se denomina activador de base de datos. Se utiliza para :

1) Modificaciones de datos de auditoría.

2) Registre eventos de forma transparente.

3) Haga cumplir las reglas comerciales complejas.

4) Mantener tablas de réplicas

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: user_defined y predefined.

7) Muestre algunas excepciones predefinidas.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

DATOS NO ENCONTRADOS

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

NÚMERO INVALIDO

INVALID_CURSOR

PROGRAM_ERROR

TIMEOUT _ON_RESOURCE

STORAGE_ERROR

INICIO DE SESIÓN DENEGADO

VALUE_ERROR

etc.

8) 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.

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.

calcular_bonus ('b644');

10) Explique dos tablas virtuales disponibles en el momento de la ejecución del disparador de la base de datos.

Las columnas de la tabla se denominan THEN.column_name y NOW.column_name.

Para los desencadenadores relacionados con INSERT, los valores NOW.column_name solo están disponibles.

Para los desencadenadores relacionados con ELIMINAR, los valores THEN.column_name solo están disponibles.

Para los disparadores relacionados con ACTUALIZAR, ambas columnas de la Tabla están disponibles.

11) ¿Cuáles son las reglas que se deben aplicar a los NULL al hacer 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í 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 comprobación de sintaxis comprueba 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 Vinculación. 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 bloques con nombre y se usa 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, instrucción SELECT INTO, que no devuelve ninguna fila.

14) Explique Commit, Rollback y Savepoint.

Para una declaración COMMIT, lo siguiente es cierto:

  • Otros usuarios pueden ver los cambios de datos realizados por la transacción.
  • Se liberan las cerraduras adquiridas 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 candados adquiridos por transacción.

Deshace todo el trabajo realizado por el usuario en una transacción. Con SAVEPOINT, solo se puede deshacer una parte de la transacción.

15) Definir cursores implícitos y explícitos.

Un cursor está implícito de forma predeterminada. 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á usando actualmente. Se corrige 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?

Los bloques anónimos PL SQL utilizan la instrucción DECLARE, como los procedimientos independientes no almacenados. Si se utiliza, debe aparecer primero en un archivo independiente.

18) ¿Cuántos disparadores se pueden aplicar a una tabla?

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.

21) Muestre las dos excepciones de cursor PL / SQL.

Cursor_Already_Open

Invaid_cursor

22) ¿Qué operadores tratan con NULL?

NVL convierte NULL en otro valor especificado.

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

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 incorporado. Por lo tanto, todo el código PL / SQL se envía directamente al motor de la 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?

Serie DBMS_ 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 funciones de caracteres. Las funciones de grupo dan resultados basados ​​en grupos de filas, a diferencia de filas individuales. Son MAX, MIN, AVG, COUNT y SUM.

27) Explica TTITLE y BTITLE.

Comandos TTITLE y BTITLE que controlan los encabezados y pies de página de los informes.

28) Muestra 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.

% ENCONTRADO: Comprueba si el cursor ha obtenido alguna fila. Es cierto si se obtienen filas

% NO ENCONTRADO: Comprueba si el cursor ha obtenido alguna fila. Es Verdadero si las filas no se recuperan.

29) ¿Qué es una intersección?

Intersect es el producto de dos tablas y solo enumera las filas coincidentes.

30) ¿Qué son las secuencias?

Las secuencias se utilizan para generar números de secuencia sin una 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 columna ANTES y DESPUÉS de haber insertado y eliminado activadores?

Usando la palabra clave "nuevo.nombre de columna", los disparadores pueden hacer referencia a valores de columna por nueva colección. Al usar la palabra clave "nombre de columna antigua", pueden hacer referencia a valores de columna por colección antigua.

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 en la 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 formar la comunicación entre varias bases de datos o diferentes entornos como prueba, desarrollo y producción. Los enlaces de la base de datos también son de solo lectura para acceder a otra información.

35) ¿Qué hace la búsqueda de un cursor?

Al obtener un cursor, se lee el conjunto de resultados fila por fila.

36) ¿Qué hace el cierre de un cursor?

Cerrar un cursor borra el área SQL privada y desasigna memoria

37) Explique los usos de Control File.

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 en la recuperación de información si un archivo se corrompe.

38) Explica la coherencia

La coherencia muestra que los datos no se reflejarán en otros usuarios hasta que se confirmen, por lo que se mantiene la coherencia.

39) Diferencia entre bloques y subprogramas anónimos.

Los bloques anónimos son bloques sin nombre que no se almacenan en ningún lugar mientras que los subprogramas se compilan y almacenan en la base de datos. Se compilan en tiempo de ejecución.

40) Diferencia entre DECODE y CASE.

Las sentencias 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 in (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 System Global Area, mientras que PGA significa Program or Process Global Area. A PGA solo se le asigna un 10% de tamaño de RAM, pero a SGA se le asigna un 40% de tamaño de RAM.

43) ¿Cuál es la ubicación de Pre_defined_functions?

Se almacenan en el paquete estándar denominado "Funciones, procedimientos y paquetes".

44) Explica 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 la 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)

en (condición de unión)

cuando no coincide entonces

comando [insertar / actualizar / eliminar]

cuando se empareja entonces

comando [insertar / actualizar / eliminar]

46) ¿Se pueden ejecutar 2 consultas simultáneamente en un sistema de base de datos distribuida?

Sí, se pueden ejecutar simultáneamente. Una consulta es siempre independiente de la segunda consulta en un sistema de base de datos distribuido basado en la confirmación de 2 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 subprograma almacenado.

48) ¿Para qué se usa el parámetro out aunque la declaración return también se puede usar en pl / sql?

Los parámetros de salida permiten más de un valor en el programa de llamada. El parámetro de salida 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 de formato J:

SQL> seleccione to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') como julian de dual;

JULIAN

50) Explica BOBINA

El comando Spool puede imprimir la salida de declaraciones SQL en un archivo.

spool / tmp / sql_outtxt

seleccione smp_name, smp_id de smp donde dept = '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 con el código oculto en el paquete antes de implementar los módulos en sí.
  • Persistencia de objetos : los objetos declarados en una especificación de paquete se comportan como datos globales para todos los objetos PL / SQL de la aplicación. Puede modificar el paquete en un módulo y luego hacer referencia a esos cambios en otro módulo
  • Diseño orientado a objetos: el paquete brinda a los desarrolladores un control sólido sobre cómo se pueden usar 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 rastreo incluyen

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION y DBMS_MONITOR
  • utilidades trcsess y tkproof

54) Mencione qué hace el perfilador jerárquico.

El generador de perfiles jerárquico podría perfilar las llamadas realizadas en PL / SQL, además de llenar la brecha entre las lagunas y las expectativas de seguimiento de rendimiento. Las eficiencias del perfilador jerárquico incluyen

  • Informes distintos para el consumo de tiempo de SQL y PL / SQL
  • Informa el recuento de las 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 eficaz que el perfilador convencional y otras utilidades de rastreo

55) Mencione qué le permite hacer PLV msg.

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 sus propios mensajes por mensajes de error estándar de Oracle con alternar restricción
  • Carga 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 afirmación
  • Utilidades misceláneas
  • Conjunto de constantes utilizadas en toda la visión PL
  • Tipos de datos predefinidos
  • 57) Mencione cuál es el uso de 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 más alto nivel para analizar el código fuente PL / SQL en atomics separados. Se basa en otros paquetes de análisis para realizar el trabajo.

58) Explique cómo puede copiar un archivo al contenido del archivo y el archivo a la tabla PL / SQL antes de PL / SQL

Con una sola llamada al programa, " procedimiento fcopy", puede copiar el contenido completo de un archivo en otro archivo. Para copiar el contenido de un archivo directamente en una tabla PL / SQL, puede utilizar el programa " file2pstab" .

59) Explique cómo se realiza el manejo de excepciones por adelantado PL / SQL.

Para el manejo de excepciones, PL / SQl proporciona un complemento eficaz PLVexc. PLVexc admite cuatro acciones de manejo de excepciones diferentes.

  • Continuar procesando
  • Grabar y luego continuar
  • Detener el procesamiento
  • Grabar y luego detener el procesamiento

Para aquellas excepciones que vuelvan a ocurrir, puede usar la declaración RAISE.

60) Mencione el problema que uno 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 asignan a la base de datos. Esto podría ser un problema ya que dicho PLVlog generalmente se implementa para rastrear errores y, en muchos 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 un registro de tabla PL / SQL se utiliza una función de tabla de registro de base de datos "PROCEDIMIENTO ps2db" .

62) ¿Cuándo tiene que usar un punto de guardado predeterminado de "reversión a" de PLVlog?

El punto de guardado predeterminado "rollback to" de PLVlog se utiliza cuando los usuarios han activado la actividad de rollback 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é PLVtab se considera la forma más sencilla de acceder a la tabla PL / SQL?

La tabla PL / SQL es la más cercana 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 lo siguiente cuando muestra el contenido de las tablas PL / SQL

  • Mostrar o suprimir un encabezado para la tabla
  • Mostrar o suprimir los números de fila de los valores de la tabla
  • Muestra un prefijo antes de cada fila de la tabla.

65) Explica cómo puedes guardar o colocar tu mensaje en una tabla.

Para guardar msg en una tabla, puede hacerlo de dos formas

  • Cargar mensajes individuales con llamadas al procedimiento add_text
  • Cargar conjuntos de mensajes de una tabla de base de datos con el procedimiento load_from_dbms

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 llamada de procedimiento. Hay tres argumentos para los módulos

  • module_in
  • cor_in
  • Last_module_in

67) ¿Mencione qué hace PLVcmt y PLVrb en PL / SQL?

PL / Vision ofrece dos paquetes que lo ayudan a administrar el procesamiento de transacciones en la aplicación PL / SQL. Es PLVcmt y PLVrb.

  • PLVcmt: el paquete PLVcmt envuelve la lógica y la complejidad para lidiar con el procesamiento de confirmación
  • PLVrb: proporciona una interfaz programática para revertir la actividad en PL / SQL