Tutorial de PL / SQL: todo lo que necesita saber sobre PL / SQL



El tutorial PL / SQL cubre toda la explicación detallada de todos los conceptos necesarios para dominar la programación PL / SQL con varios ejemplos.

PL / SQL es un lenguaje de procedimientos que supera las deficiencias que enfrentan lenguaje de consulta estructurado . Es una extensión de SQL e incluso podemos usar consultas SQL sin problemas en cualquier aplicación o programa PL / SQL. En este tutorial de PL / SQL, repasaremos los conceptos básicos de PL / SQL en detalle. Los siguientes temas se tratan en este artículo.

¿Qué es PL / SQL?

Significa extensión del lenguaje procedimental a la lenguaje de consulta estructurado . Oracle creó PL / SQL que amplía algunas limitaciones de SQL para proporcionar una solución más completa para crear aplicaciones de misión crítica que se ejecutan en Oracle. .





tutorial logo-pl / sql - edureka

Características

  • PL / SQL proporciona la funcionalidad de un lenguaje procedimental como toma de decisiones, iteración, etc.

  • Con un solo comando, PL / SQL puede ejecutar una serie de consultas.



  • También podemos reutilizar unidades PL / SQL como funciones, disparadores, procedimientos, etc. que se almacenan en la base de datos después de la creación.

  • PL / SQL también tiene un bloque de manejo de excepciones que maneja las excepciones en PL / SQL.

  • También es posible realizar una exhaustiva comprobación de errores mediante PL / SQL



  • Las aplicaciones escritas en PL / SQL son portables a otro hardware y sistemas operativos siempre que Oracle deba estar operativo.

PL / SQL frente a SQL

SQL PL / SQL
SQL es una consulta única que se utiliza para realizar operaciones DDL y DMLPL / SQL es un bloque de códigos que se utiliza para definir un programa o procedimiento / función completo, etc.
Realmente no define cómo se deben hacer las cosas, sino que define lo que se debe hacer.PL / SQL define cómo se deben hacer las cosas
Ejecuta una sola declaraciónEjecuta un bloque de declaraciones a la vez.
SQL se utiliza principalmente para manipular los datos.PL / SQL, por otro lado, se usa para crear aplicaciones
No puede contener código PL / SQLComo es una extensión SQL, puede contener código SQL

Estructuras de bloques en PL / SQL

PL / SQL normalmente organiza el código en bloques. El bloque de código sin nombre se conoce como bloque anónimo. Se conoce como bloque anónimo porque no se guarda en la base de datos de Oracle. Echemos un vistazo a un bloque anónimo en PL / SQL.

[DECLARAR] declaraciones de declaración [BEGIN] declaraciones de ejecución [EXCEPCIÓN] declaraciones de excepción END /

Al observar el diagrama que se muestra arriba, podemos ver que la estructura del bloque está dividida en cuatro partes, es decir, declaración, inicio, excepción y final. Tratemos de entender cómo funciona la estructura de bloques en PL / SQL. De todas estas secciones, la sección de ejecución es obligatoria y el resto son opcionales.

  • DECLARE La palabra clave se usa para la sección de declaración se usa para declarar tipos de datos y estructuras como variables, funciones, etc.

  • EMPEZAR La palabra clave se utiliza para la sección de ejecución. Es obligatorio y contiene todas las declaraciones que deben ejecutarse. Este bloque es donde se define la lógica de negocios, podemos usar tanto sentencias de procedimiento como SQL en este bloque.

  • los EXCEPCIÓN La palabra clave se utiliza para la sección de excepciones. Contiene todas las declaraciones de excepción.

  • FIN La palabra clave marca el final del bloque y la barra inclinada hacia atrás '/' le dice a la herramienta que está utilizando (Oracle Database Tool) para ejecutar el bloque PL / SQL.

Aquí hay un ejemplo simple para mostrar cómo podemos usar el código PL / SQL.

COMIENZO FIN NULO /

Ahora que sabemos cómo funciona la estructura de bloques en PL / SQL, comprendamos los diversos aspectos de PL / SQL como declarar, nombrar y asignar valores a las variables.

Variables PL / SQL

La variable en PL / SQL es básicamente un nombre que varía o una ubicación de almacenamiento temporal que admite un tipo de datos en particular. Echemos un vistazo a cómo podemos usar las variables en un programa PL / SQL.

Reglas de denominación de variables

PL / SQL sigue las siguientes reglas para nombrar variables.

  • La variable no puede tener más de 31 caracteres

  • El nombre de la variable debe comenzar con un carácter ASCII. Dado que PL / SQL distingue entre mayúsculas y minúsculas, una letra mayúscula y una letra minúscula serán variables diferentes.

  • Después del primer carácter, tiene que haber un carácter especial ($, _) o cualquier número.

Convenciones de nombres

Utilice las siguientes convenciones de nomenclatura que se enumeran a continuación para utilizar las variables.

Prefijo Tipo de datos
v_VARCHAR2
norte_NÚMERO
t_MESA
r_FILA
re_FECHA
b_BOOLEAN

Declaración

Intentemos comprender cómo se realiza la declaración de variables en PL / SQL

tutorial de la herramienta de ticketing de servicio ahora

La declaración incluye el nombre de la variable seguido del tipo de datos y separados por un punto y coma. A continuación se muestra un ejemplo para mostrar cómo se puede declarar una variable en PL / SQL.

DECLARAR v_name VARCHAR (25) n_age NUMBER (3) BEGIN NULL END

También puede agregar la longitud del tipo de datos como lo hicimos en el ejemplo anterior.

Anclas

El ancla básicamente se refiere al uso de la palabra clave% TYPE para declarar una variable con el tipo de datos asociado con el tipo de datos de una columna de una columna en particular en una tabla.

Eche un vistazo a un ejemplo para comprender esto. Supongamos que tenemos una tabla EMPLEADOS, podemos usar los anclajes de la siguiente manera.

DECLARAR v_name EMPLOYEE.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /

Asignación

La asignación de variables es bastante fácil, podemos usar el operador de asignación para asignar valores a una variable. El siguiente ejemplo muestra cómo podemos asignar valores a una variable.

DECLARAR v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /

Inicialización

También podemos inicializar un valor para la variable en la sección de declaración. El siguiente ejemplo muestra cómo podemos inicializar valores en una variable.

DECLARE v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /

Ahora que sabemos cómo podemos trabajar con las variables, intentemos entender cómo usaremos las funciones en PL / SQL.

Función en PL / SQL

Una función en PL / SQL es básicamente un bloque con nombre que devuelve un valor. También se conoce como subrutina o subprograma, la siguiente sintaxis muestra cómo podemos usar funciones en PL / SQL.

CREATE [OR REPLACE] FUNCTION nombre_función [(parámetro_1 [IN] [OUT] tipo_datos, parámetro_2 [IN] [OUT] tipo_datos, parámetro_N [IN] [OUT] tipo_datos] RETURN return_data_type IS BEGIN sentencias return return_data_type EXCEPCIÓN END /

En primer lugar, debe especificar un nombre de función después de la palabra clave. El nombre de la función debe comenzar con un verbo. Una función puede tener ninguno, uno o más parámetros que especifiquemos en los parámetros. Tenemos que especificar el tipo de datos de cada parámetro explícitamente, y luego viene el modo que puede hacer cualquiera de los siguientes.

  • EN - El parámetro IN es un parámetro de solo lectura.

  • FUERA - Es un parámetro de solo escritura

  • EN FUERA - El parámetro IN OUT es un parámetro de lectura y escritura.

Aquí hay un ejemplo simple para mostrar cómo usamos funciones en PL / SQL.

CREAR O REEMPLAZAR FUNCIÓN try_parse (iv_number IN VARCHAR2) EL NÚMERO DE RETORNO COMIENZA REGRESAR al número (iv_number) EXCEPCIÓN CUANDO otros ENTONCES REGRESAN NULL END

Llamar a una función

Intentemos llamar a la función que hemos realizado en un bloque anónimo en el siguiente ejemplo.

SET SERVEROUTPUT ON TAMAÑO 1000000 DECLARE n_x número n_y número n_z número BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_x) DBMS_OUTPUT n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

También podemos llamar a la función en una instrucción SELECT. Ahora que sabemos cómo podemos usar funciones en PL / SQL, intentemos comprender cómo trabajamos con procedimientos en PL / SQL.

Procedimiento PL / SQL

Un procedimiento es básicamente un bloque que realiza una tarea específica. Mediante un procedimiento, podemos envolver o encapsular lógica empresarial compleja y reutilizarla tanto en la aplicación como en la capa de base de datos.

Echemos un vistazo a un ejemplo simple para comprender cómo funciona el procedimiento en PL / SQL

CREAR O REEMPLAZAR EL PROCEDIMIENTO adjust_salary (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent IN NUMBER) IS BEGIN - actualizar el salario del empleado ACTUALIZAR empleados SET salario = salario + salario * in_percent / 100 WHERE employee_id = in_employee_id END

En el ejemplo anterior, tenemos dos parámetros, el procedimiento ajusta el salario en un porcentaje determinado y la palabra clave ACTUALIZAR actualiza el valor en la información del salario.

Encabezado del procedimiento

La sección antes de la palabra clave IS se denomina encabezado del procedimiento. Los siguientes son algunos consejos con los que uno debe estar familiarizado al trabajar con procedimientos.

  • esquema - Es el nombre opcional del esquema al que pertenece el procedimiento.

  • nombre - El nombre del procedimiento que debe comenzar con un verbo.

  • parámetros - Es la lista opcional de parámetros.

  • AUTHID - Determina si el procedimiento se ejecutará con el privilegio del usuario actual o del propietario original del procedimiento.

Cuerpo de procedimiento

Todo lo que viene después de la palabra clave IS se denomina cuerpo del procedimiento. Tenemos las declaraciones de declaración, excepción y ejecución en el cuerpo del procedimiento. A diferencia de la función, la palabra clave RETURN en un procedimiento se usa para detener la ejecución y devolver el control al llamador.

Llamar a un procedimiento

Veamos cómo podemos llamar a un procedimiento en PL / SQL.

EXEC nombre_procedimiento (param1, param2 y hellipparamN)

Podemos llamar a los procedimientos sin parámetros con solo usar la palabra clave EXEC y el nombre del procedimiento. Ahora que sabemos cómo podemos trabajar con procedimientos, intentemos comprender cómo se utilizan los bloques anidados en PL / SQL.

Bloque anidado

Un bloque anidado no es más que una combinación de uno o más bloques PL / SQL para obtener un mejor control sobre la ejecución y un manejo excepcional del programa.

A continuación, se muestra un ejemplo sencillo de un bloque anidado.

SET SERVEROUTPUT ON TAMAÑO 1000000 DECLARE n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 BEGIN DECLARE n_emp_id employee.employee_id% TYPE: = & emp_id2 v_name empleados.first_name% TYPE BEGIN SELECT first_name INTO vemp_id del empleado '|| n_emp_id ||' es '|| v_name) EXCEPCIÓN CUANDO no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Empleado '|| n_emp_id ||' no encontrado ') END END /

El bloque PL / SQL externo en el ejemplo anterior se conoce como el bloque principal o el bloque adjunto, el bloque interno, por otro lado, se conoce como el bloque secundario o el bloque adjunto.

No es una buena idea usar las variables con los mismos nombres en ambos bloques porque durante la ejecución, la variable del bloque secundario anulará la variable del bloque principal. Sucede porque PL / SQL da prioridad a la variable dentro de su propio bloque.

Etiqueta de bloque

Podemos superar este problema con la etiqueta del bloque que nos ayuda a hacer referencias a las variables dentro de los bloques usando una etiqueta.

Aquí hay un ejemplo simple para mostrar cómo podemos usar una etiqueta de bloque.

 <>DECLARAR ... COMENZAR ... FIN

El uso de una etiqueta de bloque ayuda a mejorar la legibilidad del código, obtener un mejor control y hacer referencias a los bloques. Ahora que sabemos cómo podemos trabajar con bloques anidados, intentemos entender cómo funciona el IF STATEMENT en PL / SQL.

Declaración IF

PL / SQL tiene tres DECLARACIONES IF

  • SI-ENTONCES - Es el IF STATEMENT más simple si la condición es verdadera, las declaraciones se ejecutarán, si la condición es falsa, no hace nada.

    ¿Qué es la abstracción en java con ejemplo?
  • SI-ENTONCES-ELSE - En esto, se agrega la cláusula ELSE para una secuencia alternativa de declaraciones.

  • SI-ENTONCES-ELSEIF - Nos permite ejecutar múltiples condiciones de prueba en una secuencia.

Sintaxis IF-THEN

¿cómo funciona tostring en java?
SI condición ENTONCES secuencia_de_enunciados END SI

Sintaxis IF-THEN-ELSE

SI condición ENTONCES secuencia_de_enunciados ELSE secuencia_de_los_enunciados END IF

Sintaxis IF-THEN-ELSEIF

SI condición1 ENTONCES secuencia_de_enunciados1 ELSIF condición2 ENTONCES secuencia_de_enunciados2 ELSE secuencia_de_enunciados3 END IF

Ahora que hemos terminado con la instrucción IF, veamos la instrucción CASE en PL / SQL.

Declaración CASE

La instrucción CASE básicamente ayuda a ejecutar una secuencia de declaraciones basadas en un selector. Un selector, en este caso, puede ser cualquier cosa, puede ser una variable, función o una expresión simple. Aquí hay un ejemplo simple para mostrar la sintaxis de la instrucción CASE en PL / SQL.

[<>] CASO [VERDADERO | selector] WHEN expresión1 ENTONCES secuencia_de_enunciados1 CUANDO expresión2 ENTONCES secuencia_de_enunciados2 ... CUANDO expresiónN ENTONCES secuencia_de_enunciadosN [ELSE secuencia_de_enunciadosN + 1] END CASE [nombre_etiqueta]

En la sintaxis anterior, después de la palabra clave CASE viene el selector. PL / SQL evaluará el selector solo una vez para determinar qué declaración debe ejecutarse.

Seguido por el selector es la palabra clave WHEN. Si la expresión satisface al selector, se ejecuta la declaración correspondiente después de THEN.

Ahora que sabemos cómo podemos usar una declaración CASE, intentemos entender cómo usaremos las declaraciones de bucle en PL / SQL.

Declaración de bucle

Una declaración de bucle en PL / SQL es una declaración iterativa que le permite ejecutar una secuencia de declaraciones varias veces. Aquí hay un ejemplo simple para mostrar la sintaxis de una declaración de bucle en PL / SQL.

LOOP secuencia_de_enunciados END LOOP

Tiene que haber al menos una instrucción ejecutable entre la palabra clave LOOP y END LOOP.

Bucle con declaración EXIT

Las declaraciones EXIT y EXIT when le permiten salir del ciclo. La instrucción EXIT WHEN termina el ciclo condicionalmente mientras que EXIT termina la ejecución incondicionalmente.

LOOP ... SALIR CUANDO condición END LOOP

Etiqueta de lazo

Una etiqueta de bucle se usa para calificar el nombre de la variable de contador de bucle cuando se usa en un bucle anidado. A continuación se muestra la sintaxis de una etiqueta de bucle.

 <>LOOP secuencia_de_ declaraciones END LOOP etiqueta

Ahora que sabemos cómo podemos usar las declaraciones de bucle, echemos un vistazo a las declaraciones de bucle while para una mejor comprensión.

Mientras que declaración de bucle

Podemos usar la declaración de ciclo WHILE cuando el número de ejecuciones no está definido hasta que comienza la ejecución. La siguiente sintaxis se utiliza para una instrucción de bucle WHILE en PL / SQL.

WHILE condición LOOP secuencia_de_ declaraciones END LOOP

La condición en la sintaxis es un valor booleano o una expresión que se evalúa como VERDADERO, FALSO o NULO. Si la condición es VERDADERA, las sentencias se ejecutarán, si es FALSA, la ejecución se detiene y el control pasa a la siguiente sentencia ejecutable.

Ahora que sabemos cómo podemos usar una instrucción de bucle WHILE, echemos un vistazo a la instrucción de bucle FOR.

Para declaración de bucle

Una instrucción de bucle FOR en PL / SQL nos permite ejecutar una secuencia de instrucciones durante un número definido de veces. A continuación se muestra la sintaxis para usar la instrucción de bucle FOR en PL / SQL

FOR loop_counter IN [REVERSE] lower_bound .. high_bound LOOP secuencia_de_ declaraciones END LOOP

PL / SQL crea una variable local loop_counter automáticamente con un tipo de datos INTEGER para el bucle para que no tenga que declararlo explícitamente. El límite inferior ... el límite superior es el rango sobre el que itera el bucle. Además, debe tener al menos una instrucción ejecutable entre las palabras clave LOOP y END LOOP.

Ahora que sabemos cómo podemos usar las sentencias de bucle en PL / SQL, echemos un vistazo al manejo excepcional en PL / SQL.

Manejo excepcional

En PL / SQL, cualquier tipo de error se trata como una excepción. Una excepción puede tratarse como una condición especial que puede cambiar o alterar el flujo de ejecución. En PL / SQL, hay dos tipos de excepciones.

  • Excepción del sistema: Lo genera el tiempo de ejecución de PL / SQL cuando detecta un error.

  • Excepción definida por el programador - Estas excepciones las define el programador en una aplicación específica.

Definición de una excepción

Se debe declarar una excepción en PL / SQL antes de que se pueda generar. Podemos definir la excepción usando la palabra clave EXCEPTION como lo hemos hecho en el siguiente ejemplo.

EXCEPTION_NAME EXCEPTION

Para generar una excepción, usamos la palabra clave RAISE.

RAISE EXCEPTION_NAME

Así que todo fue sobre PL / SQL, espero que este artículo le haya ayudado a agregar valor a su conocimiento. Para obtener más información sobre SQL o bases de datos, puede consultar nuestra lista de lectura completa aquí: .

Si desea obtener una formación estructurada sobre MySQL, consulte nuestro que viene con capacitación en vivo dirigida por un instructor y experiencia en proyectos de la vida real. Esta capacitación lo ayudará a comprender MySQL en profundidad y lo ayudará a dominar el tema.

Tienes una pregunta para nosotros? Por favor, menciónelo en la sección de comentarios de ' Tutorial PL / SQL ”Y me pondré en contacto contigo.