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
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.
▪ ….