logo

Introducción a PL/SQL

PL/SQL es un lenguaje estructurado en bloques que permite a los desarrolladores combinar el poder de SQL con declaraciones de procedimiento. Todas las declaraciones de un bloque se pasan al motor Oracle al mismo tiempo, lo que aumenta la velocidad de procesamiento y disminuye el tráfico.

Conceptos básicos de PL/SQL

  • •PL/SQL significa extensiones de lenguaje de procedimiento al lenguaje de consulta estructurado (SQL).
  • PL/SQL es una combinación de SQL junto con las características procedimentales de los lenguajes de programación.
  • Oracle utiliza un motor PL/SQL para procesar las declaraciones PL/SQL.
  • PL/SQL incluye elementos del lenguaje procedimental como condiciones y bucles. Permite declaración de constantes y variables, procedimientos y funciones, tipos y variables de esos tipos y desencadenantes.

Desventajas de SQL:



  • SQL no proporciona a los programadores una técnica de verificación de condiciones, bucles y ramificaciones.
  • Las declaraciones SQL se pasan al motor de Oracle una a la vez, lo que aumenta el tráfico y disminuye la velocidad.
  • SQL no tiene posibilidad de comprobar errores durante la manipulación de datos.

Características de PL/SQL:

  1. PL/SQL es básicamente un lenguaje de procedimientos, que proporciona la funcionalidad de toma de decisiones, iteración y muchas más características de los lenguajes de programación de procedimientos.
  2. PL/SQL puede ejecutar varias consultas en un bloque usando un solo comando.
  3. Se pueden crear una unidad PL/SQL, como procedimientos, funciones, paquetes, activadores y tipos, que se almacenan en la base de datos para su reutilización por las aplicaciones.
  4. PL/SQL proporciona una función para manejar la excepción que ocurre en el bloque PL/SQL conocida como bloque de manejo de excepciones.
  5. Las aplicaciones escritas en PL/SQL son portátiles al hardware o al sistema operativo donde Oracle está operativo.
  6. PL/SQL Ofrece una amplia comprobación de errores.

Diferencias entre SQL y PL/SQL:

SQL PL/SQL
SQL es una consulta única que se utiliza para realizar operaciones DML y DDL. PL/SQL es un bloque de códigos que se utiliza para escribir todos los bloques/procedimientos/funciones del programa, etc.
Es declarativo, define lo que se debe hacer, en lugar de cómo se deben hacer las cosas. PL/SQL es un procedimiento que define cómo se deben hacer las cosas.
Ejecutar como una sola declaración. Ejecutar como un bloque completo.
Se utiliza principalmente para manipular datos. Se utiliza principalmente para crear una aplicación.
No puede contener código PL/SQL. Es una extensión de SQL, por lo que puede contener SQL en su interior.

Estructura del bloque PL/SQL:



java cómo anular

PL/SQL extiende SQL agregando construcciones que se encuentran en lenguajes de procedimiento, lo que da como resultado un lenguaje estructural que es más poderoso que SQL. La unidad básica en PL/SQL es un bloque. Todos los programas PL/SQL se componen de bloques que pueden anidarse unos dentro de otros.

Normalmente, cada bloque realiza una acción lógica en el programa. Un bloque tiene la siguiente estructura:

 DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
  • La sección declarar comienza con DECLARAR Palabra clave en la que se pueden declarar variables, constantes, registros como cursores que almacenan datos temporalmente. Básicamente consiste en la definición de identificadores PL/SQL. Esta parte del código es opcional.
  • La sección de ejecución comienza con COMENZAR y termina con FIN palabra clave. Esta es una sección obligatoria y aquí se escribe la lógica del programa para realizar cualquier tarea, como bucles y declaraciones condicionales. Es compatible con todos DML comandos, DDL comandos y funciones integradas SQL*PLUS también.
  • La sección de excepción comienza con EXCEPCIÓN palabra clave. Esta sección es opcional y contiene declaraciones que se ejecutan cuando ocurre un error en tiempo de ejecución. Cualquier excepción se puede manejar en esta sección.

Identificadores PL/SQL

Hay varios identificadores PL/SQL como variables, constantes, procedimientos, cursores, activadores, etc.



  1. variables : Como muchos otros lenguajes de programación, las variables en PL/SQL deben declararse antes de su uso. También deben tener un nombre y un tipo de datos válidos. Sintaxis para declaración de variables:
variable_name datatype [NOT NULL := value ];>
  1. Ejemplo para mostrar cómo declarar variables en PL/SQL:

C




SQL>CONFIGURAR LA SALIDA DEL SERVIDOR;> SQL>DECLARAR> >var1 INTEGER;> >var2 REAL;> >var3 varchar2(20) ;> BEGIN> >null;> END;> />

ejemplo de mapa java

>

>

  1. Producción:
PL/SQL procedure successfully completed.>
  1. Explicación:
    • CONFIGURAR LA SALIDA DEL SERVIDOR EN : Se utiliza para mostrar el búfer utilizado por dbms_output.
    • var1 ENTERO : Es la declaración de una variable, denominada var1 que es de tipo entero. Hay muchos otros tipos de datos que se pueden usar como float, int, real, smallint, long, etc. También admite variables utilizadas en SQL, así como NUMBER(prec, scale), varchar, varchar2, etc.
    • Procedimiento PL/SQL completado con éxito.: Se muestra cuando el código se compila y ejecuta correctamente.
    • Barra diagonal (/) después de FIN;: La barra diagonal (/) le indica a SQL*Plus que ejecute el bloque.
    • Operador de asignación (:=) : Se utiliza para asignar un valor a una variable.
  2. Mostrando salida : Las salidas se muestran mediante DBMS_OUTPUT, que es un paquete integrado que permite al usuario mostrar salidas, información de depuración y enviar mensajes desde bloques, subprogramas, paquetes y activadores PL/SQL. Veamos un ejemplo para ver cómo mostrar un mensaje usando PL/SQL:

C


cuadrícula de malla numerosa



SQL>CONFIGURAR LA SALIDA DEL SERVIDOR;> SQL>DECLARAR> >var varchar2(40) :=>'I love GeeksForGeeks'> ;> >BEGIN> >dbms_output.put_line(var);> >END;> >/>

>

>

  1. Producción:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
  1. Explicación:
    • dbms_output.put_line : Este comando se utiliza para dirigir la salida PL/SQL a una pantalla.
  2. Usando comentarios : Como en muchos otros lenguajes de programación, en PL/SQL también se pueden poner comentarios dentro del código que no tienen ningún efecto en el código. Hay dos sintaxis para crear comentarios en PL/SQL:
    • Comentario de una sola línea: Para crear un comentario de una sola línea, el símbolo– –se utiliza.
    • Comentario de varias líneas: Para crear comentarios que abarquen varias líneas, el símbolo/*y*/se utiliza.
  3. Tomando información del usuario : Al igual que en otros lenguajes de programación, en PL/SQL también podemos tomar información del usuario y almacenarla en una variable. Veamos un ejemplo para mostrar cómo recibir información de los usuarios en PL/SQL:

C

recursividad en java




SQL>CONFIGURAR LA SALIDA DEL SERVIDOR;> SQL>DECLARAR> >-- taking input>for> variable a> >a number := &a;> > >-- taking input>for> variable b> >b varchar2(30) := &b;> >BEGIN> >null;> >END;> >/>

>

>

  1. Producción:
Enter value for a: 24 old 2: a number := &a; new 2: a number := 24; Enter value for b: 'GeeksForGeeks' old 3: b varchar2(30) := &b; new 3: b varchar2(30) := 'GeeksForGeeks'; PL/SQL procedure successfully completed.>
  1. (***) Veamos un ejemplo en PL/SQL para demostrar todos los conceptos anteriores en un solo bloque de código.

C




ejemplos de programación en Python
--PL/SQL code to print sum of two numbers taken from the user.> SQL>CONFIGURAR LA SALIDA DEL SERVIDOR;> SQL>DECLARAR> > >-- taking input>for> variable a> >a integer := &a ;> > >-- taking input>for> variable b> >b integer := &b ;> >c integer ;> >BEGIN> >c := a + b ;> >dbms_output.put_line(>'Sum of '>||a||>' and '>||b||>' is = '>||c);> >END;> >/>

>

>

Enter value for a: 2 Enter value for b: 3 Sum of 2 and 3 is = 5 PL/SQL procedure successfully completed.>

Entorno de ejecución PL/SQL:

El motor PL/SQL reside en el motor de Oracle. El motor de Oracle puede procesar no solo una sola declaración SQL sino también un bloque de muchas declaraciones. La llamada al motor de Oracle debe realizarse solo una vez para ejecutar cualquier número de declaraciones SQL si estas declaraciones SQL están incluidos dentro de un bloque PL/SQL.