1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
/* Ejercicio 7: Escribir un procedimiento que visualice solamente caracteres alfabéticos sustituyendo cualquier otro carácter no alfabético por blancos a partir de una cadena que se pasará en la llamada. */ delimiter $$ drop procedure if exists 1x07 $$ create procedure 1x07(in cad varchar(30)) begin declare cadTemp varchar(30) default ''; declare carAscii int; declare i int default 1; while i <= char_length(cad) do set carAscii = ascii(mid(cad,i,1)); if carAscii >= 65 && carAscii <= 90 || carAscii >= 97 && carAscii <= 122 then set cadTemp = concat(cadTemp,mid(cad,i,1)); else set cadTemp = concat(cadTemp,' '); end if; set i = i + 1; end while; select cadTemp as 'Solo letras'; end$$ delimiter ; -- call 1x07('H0l@ qu3 t@l?'); |
Categoría: Programación
1×06: Calcula número de trienios
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/* Ejercicio 6: Escribir un procedimiento que visualice los trienios completos que hay entre dos fechas. */ delimiter $$ drop procedure if exists 1x06 $$ create procedure 1x06(in fecha1 date, in fecha2 date) begin select abs(datediff(fecha1,fecha2)) div 1095 as trianios; end$$ delimiter ; -- call 1x06('2012-04-12','2020-06-01'); |
1×05: Calcula número de años
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/* Ejercicio 5: Desarrollar un procedimiento que visualice el número de años completos que hay entre dos fechas que se pasan como argumentos. */ delimiter $$ drop procedure if exists 1x05 $$ create procedure 1x05(in fecha1 date, in fecha2 date) begin select abs(datediff(fecha1,fecha2)) div 365 as anios; end$$ delimiter ; -- call 1x05('2012-04-12','2020-06-01'); |
1×04: Usa otro procedimiento
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/* Ejercicio 4: Escribir un procedimiento que haga uso del procedimiento anterior. */ delimiter $$ drop procedure if exists 1x04 $$ create procedure 1x04() begin call 1x03('2012-04-12'); end$$ delimiter ; -- call 1x04; |
1×03: Recibe fecha y devuelve año
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/* Ejercicio 3: Escribir un procedimiento que reciba una fecha y visualice el año, en número, correspondiente a esa fecha. */ delimiter $$ drop procedure if exists 1x03 $$ create procedure 1x03( in fecha date ) begin select fecha as 'Fecha', year(fecha) as 'Año'; end$$ delimiter ; -- call 1x03('2012-04-12'); |
1×02: Invierte cadena
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/* Ejercicio2: Codificar un procedimiento que reciba una cadena y la visualice al revés. */ delimiter $$ drop procedure if exists 1x02 $$ create procedure 1x02(in cad varchar(10)) begin select reverse(cad) as 'Resultado'; end$$ delimiter ; -- call 1x02('Hola mundo') |
1×01: Recibe dos números y devuelve suma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/* Ejercicio1: Escribir un procedimiento que reciba dos números y visualice su suma. */ delimiter $$ drop procedure if exists 1x01 $$ create procedure 1x01(in num1 int, in num2 int) sql security invoker -- Ejecuta el programa con los permisos del que lo ejecuta. begin select num1 + num2 as 'Resultado'; /* En oracle habria que añadir "from dual;" */ end$$ delimiter ; -- call 1x01(3,5); |