05 PLSQL

Modelamiento y Gestión de Base de Datos Adolfo Jimenez 2020 Tipos de datos ▪ CHAR [(longitud máxima)] ▪ VARCHAR2 (32.

Views 264 Downloads 0 File size 1021KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Modelamiento y Gestión de Base de Datos Adolfo Jimenez 2020

Tipos de datos ▪ CHAR [(longitud máxima)]

▪ VARCHAR2 (32.767 bytes) ▪ LONG (max. 2GB) ▪ LONG RAW (max. 2GB) ▪ NUMBER [(precisión, escala)]

▪ DATE ▪ PLS_INTEGER

Tipos de datos ▪ CLOB (max. 4 gb)

▪ BLOB (objeto binario, max. 4gb) ▪ BFILE (max. 4 gb) ▪ TIMESTAMP ▪ etc. ▪ http://ora.u440.com/ddl/datatypes.html

Operadores en PL/SQL

Ejemplos ▪ Incrementa el contador: cont := cont + 1; ▪ Asigna valor booleano: bool := (b1 = b2);

▪ Valida un número si tiene un valor: valida := (valor IS NOT NULL);

Convenciones de código

Declaración de variables

 identificador: nombre de la variable.  tipo_de_dato: Es un tipo de dato escalar.

 NOT NULL: Restringe la variable para que tenga un valor. Debe

inicializarse.  exp: Expresión pl/sql que puede ser literal, otra variable, o con uso de operadores y funciones.

Declaración de variables escalares

Tipos de bloques

Estructura de los bloques

Bloque anónimo

Conversión de tipos ▪ PL/SQL intenta convertir los datos dinámicamente si se mezclan en una sentencia. Ej. Si se asigna una variable NUMBER a una variable CHAR, traducirá dinámicamente a un carácter o viceversa. ▪ Se debería asegurar que los tipos de datos sean los mismos. Si se produce una mezcla de tipos, se debería utilizar la función de conversión apropiada.

Conversión de tipos ▪ Sintaxis:

TO_CHAR (valor, formato); TO_DATE (valor, formato); TO_NUMBER (valor, formato);

▪ Donde: – Valor: Es una cadena de caracteres, un número o una fecha. – Formato: Es el modelo de formato que se utiliza para convertir un valor.

Bloque anónimo – conversión de tipos

Bloque anónimo – conversión de tipos

Bloques anidados

Bloques anidados

Atributo %TYPE ▪ Se utiliza cuando se quiere declarar una variable de acuerdo con: – La definición de una columna de base de datos. – Otra variable declarada anteriormente.

Atributo %TYPE Sintaxis: identificador Tabla.NombreColumna%TYPE;

Atributo %ROWTYPE ▪ Declare una variable de acuerdo con una colección de columnas tomando sus nombres y tipos de datos de una vista o tabla de la base de datos. Sintaxis: identificador NombreTabla%ROWTYPE;

▪ Ejemplo: – emp_record emp%ROWTYPE;

Atributo %ROWTYPE

Variables booleanas ▪ A una variable booleana sólo se le puede asignar los valores TRUE, FALSE, NULL. ▪ Las variables se comparan por medio de operadores lógicos AND, OR, NOT. DECLARE v_flag BOOLEAN:=TRUE; v_mayor NUMBER := 400; v_menor NUMBER := 300; BEGIN v_flag := FALSE; v_flag := v_menor < v_mayor; END;

Sentencias SELECT en PL/SQL ▪ .

Sentencias SELECT en PL/SQL ▪ La cláusula INTO se coloca entre SELECT y FROM. Se utiliza para guardar los valores que devuelve la consulta SQL. Se especifica una variable por cada elemento seleccionado y el orden de las variables debe corresponder con los elementos seleccionados. ▪ Las consultas deben devolver una sola fila, caso contrario se mostrará mensaje de error (EXCEPCION). ▪ NOTA: Los errores se controlan con: NO_DATA_FOUND y TOO_MANY_ROWS.

Sentencias SELECT en PL/SQL

Sentencias SELECT en PL/SQL ▪ Seleccionar la fecha de contratación y el sueldo de un empleado específico.

▪ Ejercicio 1:

▪ Escriba un bloque PL/SQL que consulte la suma de los sueldos de todos los empleados (EMPLOYEES) que trabajan en el departamento número 90 (department_id). El bloque debe mostrar como salida el siguiente mensaje: ▪ La suma del salario es …….

▪ Ejercicio 2:

▪ Crear un bloque anónimo que aumente el sueldo de todos los empleados que tengan el puesto de administrativo (job_id => ST_CLERK).

▪ Ejercicio 3:

▪ Crear un bloque anónimo que elimine las filas que pertenecen al departamento 10 de la tabla EMPLOYEES. Verificar la integridad de datos para realizar éste ejercicio.

Cursores SQL ▪ Un cursor es un área de trabajo SQL privado.

▪ Existen dos tipos de cursores: – Cursores implícitos – Cursores explícitos ▪ Oracle utiliza los cursores implícitos para analizar y ejecutar sentencias SQL.

Cursores SQL ▪ Existen cuatro atributos disponibles en PL/SQL que se aplican a los cursores.

Cursores SQL

Ejercicio 4 ▪ Cree un bloque PL/SQL que seleccione el número de departamento más alto (DEPARTMENTS) y lo almacene en una variable. Imprimir el resultado en pantalla.

Ejercicio 5 ▪ Modifique el bloque anterior para insertar un nuevo departamento en la tabla DEPARTMENTS. – Utilice una variable para proporcionar el nombre del departamento. Llame al nuevo departamento ‘Logística’.

Ejercicio 5 (cont…) – En lugar de imprimir el número de departamento que recuperó en el ejercicio 1, súmele 10 y utilícele como número de departamento del departamento nuevo. – Deje el número de ubicación como nulo. – Ejecute el bloque PL/SQL – Muestre el nuevo departamento que ha creado.

Ejercicio 6 ▪ Cree un bloque PL/SQL que actualice el número de identificación de ubicación del nuevo departamento que agregó. – Utilice una variable para el número de identificación del departamento que agregó en el ejercicio anterior.

Ejercicio 6 (cont…) – Utilice una variable para proporcionar el número de identificación de la ubicación. Llame a este nuevo número de identificación 1700. ▪ p_deptno = 280 ▪ p_loc =1700 – Muestre el nuevo departamento que ha actualizado.

Ejercicio 7 ▪ Cree un bloque PL/SQL que suprima el departamento que creo en el ejercicio 2. – Utilice una variable para proporcionar el número de identificación del departamento. ▪ p_deptno = 280 – Imprima en pantalla el número de filas afectadas.

Ejercicio 8 ▪ Implemente un bloque anónimo para almacenar una VARRAY de teléfonos de tipo NUMBER. ▪ Insertar 10 elementos de 5 cifras cada uno. ▪ Muestre los elementos.

▪ ….