Bloque PL / SQL: ESTRUCTURA, Sintaxis, Ejemplo ANÓNIMO

Tabla de contenido:

Anonim

¿Qué es el bloque PL / SQL?

En PL / SQL, el código no se ejecuta en formato de una sola línea, pero siempre se ejecuta agrupando el código en un solo elemento llamado Bloques. En este tutorial, aprenderá sobre estos bloques.

Los bloques contienen tanto PL / SQL como instrucciones SQL. Todas estas instrucciones se ejecutarán como un todo en lugar de ejecutar una sola instrucción a la vez.

En este tutorial, aprenderá:

  • ¿Qué es el bloque PL / SQL?
  • Estructura de bloque
  • Sintaxis de bloque PL / SQL
  • Tipos de bloque PL / SQL

Estructura de bloque

Los bloques PL / SQL tienen una estructura predefinida en la que se agrupa el código. A continuación se muestran diferentes secciones de bloques PL / SQL.

  1. Sección de declaración
  2. Sección de ejecución
  3. Sección de manejo de excepciones

La siguiente imagen ilustra los diferentes bloques PL / SQL y su orden de sección.

Sección de declaración

Esta es la primera sección de los bloques PL / SQL. Esta sección es una parte opcional. Esta es la sección en la que se declarará la declaración de variables, cursores, excepciones, subprogramas, instrucciones pragma y colecciones que se necesiten en el bloque. A continuación se muestran algunas características más de esta parte.

  • Esta sección en particular es opcional y se puede omitir si no se necesitan declaraciones.
  • Esta debe ser la primera sección de un bloque PL / SQL, si está presente.
  • Esta sección comienza con la palabra clave 'DECLARE' para disparadores y bloqueo anónimo. Para otros subprogramas, esta palabra clave no estará presente. En cambio, la parte que sigue a la definición del nombre del subprograma marca la sección de declaración.
  • Esta sección siempre debe ir seguida de la sección de ejecución.

Sección de ejecución

La parte de ejecución es la parte principal y obligatoria que realmente ejecuta el código que está escrito en su interior. Dado que PL / SQL espera las sentencias ejecutables de este bloque, este no puede ser un bloque vacío, es decir, debe tener al menos una línea de código ejecutable válido en él. A continuación se muestran algunas características más de esta parte.

  • Puede contener tanto código PL / SQL como código SQL.
  • Esto puede contener uno o varios bloques dentro de él como un bloque anidado.
  • Esta sección comienza con la palabra clave "BEGIN".
  • Esta sección debe ir seguida de 'FIN' o la sección de manejo de excepciones (si está presente)

Sección de manejo de excepciones:

La excepción es inevitable en el programa que ocurre en tiempo de ejecución y para manejar esto, Oracle ha proporcionado una sección de manejo de excepciones en bloques. Esta sección también puede contener declaraciones PL / SQL. Esta es una sección opcional de los bloques PL / SQL.

  • Esta es la sección donde se maneja la excepción generada en el bloque de ejecución.
  • Esta sección es la última parte del bloque PL / SQL.
  • El control de esta sección nunca puede volver al bloque de ejecución.
  • Esta sección comienza con la palabra clave 'EXCEPCIÓN'.
  • Esta sección siempre debe ir seguida de la palabra clave "FIN".

La palabra clave 'END' marca el final del bloque PL / SQL.

Sintaxis de bloque PL / SQL

A continuación se muestra la sintaxis de la estructura de bloques PL / SQL.

DECLARE --optionalBEGIN --mandatoryEXCEPTION --optionalEND; --mandatory/

Nota: Un bloque siempre debe ir seguido de '/' que envía la información al compilador sobre el final del bloque.

Tipos de bloque PL / SQL

Los bloques PL / SQL son principalmente de dos tipos.

  1. Bloques anónimos
  2. Bloques con nombre

Bloques anónimos:

Los bloques anónimos son bloques PL / SQL que no tienen ningún nombre asignado. Deben crearse y utilizarse en la misma sesión porque no se almacenarán en el servidor como objetos de base de datos.

Dado que no necesitan almacenarse en la base de datos, no necesitan pasos de compilación. Se escriben y ejecutan directamente, y la compilación y ejecución ocurren en un solo proceso.

A continuación se muestran algunas características más de los bloques anónimos.

  • Estos bloques no tienen ningún nombre de referencia especificado para ellos.
  • Estos bloques comienzan con la palabra clave 'DECLARE' o 'BEGIN'.
  • Dado que estos bloques no tienen ningún nombre de referencia, no se pueden almacenar para fines posteriores. Se crearán y ejecutarán en la misma sesión.
  • Pueden llamar a los otros bloques con nombre, pero la llamada a un bloque anónimo no es posible ya que no tiene ninguna referencia.
  • Puede tener un bloque anidado en él que puede ser nombrado o anónimo. También se puede anidar en cualquier bloque.
  • Estos bloques pueden tener las tres secciones del bloque, en la que la sección de ejecución es obligatoria, las otras dos secciones son opcionales.

Bloques con nombre:

Los bloques con nombre tienen un nombre específico y único para ellos. Se almacenan como objetos de la base de datos en el servidor. Dado que están disponibles como objetos de base de datos, se puede hacer referencia a ellos o utilizarlos siempre que estén presentes en el servidor. El proceso de compilación de bloques con nombre ocurre por separado mientras se crean como objetos de base de datos.

A continuación se muestran algunas características más de los bloques con nombre.

  • Estos bloques se pueden llamar desde otros bloques.
  • La estructura del bloque es la misma que la de un bloque anónimo, excepto que nunca comenzará con la palabra clave 'DECLARE'. En su lugar, comenzará con la palabra clave 'CREAR' que indica al compilador que lo cree como un objeto de base de datos.
  • Estos bloques se pueden anidar dentro de otros bloques. También puede contener bloques anidados.
  • Los bloques con nombre son básicamente de dos tipos:
  1. Procedimiento
  2. Función
Aprenderemos más sobre estos bloques con nombre en los temas "Procedimiento" y "Función" en un tutorial posterior.

Resumen

Después de este tutorial, debe conocer los bloques PL / SQL y sus tipos, las diferentes secciones de bloques y sus usos. La descripción detallada de los bloques PL / SQL nombrados se cubrirá en el tutorial posterior.