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 de Oracle a la vez, lo que aumenta la velocidad de procesamiento y disminuye el tráfico.
Desventajas de SQL:
- SQL no proporciona a los programadores una técnica de comprobación de condiciones, bucles y bifurcaciones.
- 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 la posibilidad de verificar errores durante la manipulación de datos.
Características de PL/SQL:
- 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.
- PL/SQL puede ejecutar varias consultas en un bloque usando un solo comando.
- Se puede crear una unidad PL/SQL, como procedimientos, funciones, paquetes, disparadores y tipos, que se almacenan en la base de datos para que las aplicaciones los reutilicen.
- PL/SQL proporciona una característica para manejar la excepción que ocurre en el bloque PL/SQL conocido como bloque de manejo de excepciones.
- Las aplicaciones escritas en PL/SQL son portátiles al hardware de la computadora o al sistema operativo donde Oracle está operativo.
- 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 solía escribir los bloques/procedimiento/función del programa completo, etc. |
Es declarativo, que 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:
PL/SQL amplía SQL al agregar 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 se pueden anidar 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 Declare comienza con la palabra clave DECLARE 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 BEGIN y termina con la palabra clave END . Esta es una sección obligatoria y aquí se escribe la lógica del programa para realizar cualquier tarea, como bucles y declaraciones condicionales. Admite todos los comandos DML , comandos DDL y funciones integradas SQL*PLUS también.
- La sección de excepción comienza con la palabra clave EXCEPCIÓN . Esta sección es opcional y contiene instrucciones que se ejecutan cuando se produce 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.
-
Variables :
al igual que 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 la declaración de variables:
variable_name datatype [NOT NULL := value ];
Ejemplo para mostrar cómo declarar variables en PL/SQL:
SQL> SET SERVEROUTPUT ON;
SQL> DECLARE
var1 INTEGER;
var2 REAL;
var3 varchar2(20) ;
BEGIN
null;
END;
/
Producción:
PL/SQL procedure successfully completed.
Explicación:
- SET SERVEROUTPUT ON : se utiliza para mostrar el búfer utilizado por dbms_output.
- var1 INTEGER : Es la declaración de 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 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 oblicua (/) después de FIN; : La barra inclinada (/) le dice a SQL*Plus que ejecute el bloque.
1.1) INICIALIZACIÓN DE VARIABLES:
Las variables también se pueden inicializar como en otros lenguajes de programación. Veamos un ejemplo de lo mismo:SQL> SET SERVEROUTPUT ON;
SQL> DECLARE
var1 INTEGER := 2 ;
var3 varchar2(20) :=
'I Love GeeksForGeeks'
;
BEGIN
null;
END;
/
Producción:
PL/SQL procedure successfully completed.
Explicación:
- Operador de asignación (:=) : Se utiliza para asignar un valor a una variable.
-
Visualización de resultados :
los resultados se muestran mediante DBMS_OUTPUT, que es un paquete integrado que permite al usuario mostrar resultados, información de depuración y enviar mensajes desde bloques PL/SQL, subprogramas, paquetes y disparadores.Veamos un ejemplo para ver cómo mostrar un mensaje usando PL/SQL:
SQL> SET SERVEROUTPUT ON;
SQL> DECLARE
var varchar2(40) :=
'I love GeeksForGeeks'
;
BEGIN
dbms_output.put_line(var);
END;
/
Producción:
I love GeeksForGeeks PL/SQL procedure successfully completed.
Explicación:
- dbms_output.put_line : este comando se usa para dirigir la salida PL/SQL a una pantalla.
-
Uso de comentarios :
como en muchos otros lenguajes de programación, en PL/SQL también se pueden colocar 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, se utiliza el símbolo – .
- Comentario de varias líneas: para crear comentarios que abarquen varias líneas, se utiliza el símbolo /* y */ .
Ejemplo para mostrar cómo crear comentarios en PL/SQL:
SQL> SET SERVEROUTPUT ON;
SQL> DECLARE
-- I am a comment, so i will be ignored.
var varchar2(40) :=
'I love GeeksForGeeks'
;
BEGIN
dbms_output.put_line(var);
END;
/
Producción:
I love GeeksForGeeks PL/SQL procedure successfully completed.
-
Tomando la entrada del usuario :
Al igual que en otros lenguajes de programación, también en PL/SQL, podemos tomar la entrada del usuario y almacenarla en una variable. Veamos un ejemplo para mostrar cómo recibir información de los usuarios en PL/SQL:SQL> SET SERVEROUTPUT ON;
SQL> DECLARE
-- taking input
for
variable a
a number := &a;
-- taking input
for
variable b
b varchar2(30) := &b;
BEGIN
null;
END;
/
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.
- (***) Veamos un ejemplo en PL/SQL para demostrar todos los conceptos anteriores en un solo bloque de código.
--PL/SQL code to print sum of two numbers taken from the user.
SQL> SET SERVEROUTPUT ON;
SQL> DECLARE
-- 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 declaración SQL única, sino también un bloque de muchas declaraciones. La llamada al motor de Oracle debe realizarse solo una vez para ejecutar cualquier cantidad de declaraciones SQL si estas se empaquetan dentro de un bloque PL/SQL.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA