FUNCIONES
FUNCIONES
FUNCIONES
Índice
3. PSEUDO COLUMNAS 8
4. Control de transacciones.- COMMIT, ROLBACK 10
5. EJERCICIOS PROPUESTOS 12
Página 1 de 12
PL/SQL 2. FUNCIONES
En PL/SQL podemos utilizar las sentencias SELECT, INSERT, UPDATE, y DELETE. Estas
sentencias tienen las mismas restricciones y características que cuando se usaban en SQL.
Todas las operaciones del DML se refieren a una tabla. La referencia a la tabla, de
forma general, es:
Donde propietario identifica al dueño de la tabla y dblink indica que la tabla esta en
una base de datos remota. En el caso de que se este trabajando en una base de datos
remota para acceder a las tablas habrá que utilizar la siguiente sentencia:
Las referencias a las tablas pueden ser complicadas, sobre todo si se utilizan los
apuntes y los links a las bases de datos remotas. Por ello es conveniente la utilización de
sinónimos.
Página 2 de 12
PL/SQL 2. FUNCIONES
2. FUNCIONES
SUBSTRB substrb (cadena1,a [,b]) .- Igual que SUBSTR pero los valores de 'a' y de 'b'
son de tipo byte.
Página 3 de 12
PL/SQL 2. FUNCIONES
SING (X).- Si el valor de 'x' es menor que cero retorna -1,si es igual retorna 0, si es
mayor 1.
Página 4 de 12
PL/SQL 2. FUNCIONES
Página 5 de 12
PL/SQL 2. FUNCIONES
NEXT_DAY (d, cadena).- Retorna el día siguiente a la fecha 'd', indicando el día de la
semana (cadena).
GLB ([DISTINCT | ALL] etiqueta).- Devuelve la etiqueta (de salto) mayor de entre
las mas bajas.
LUB([DISTINCT| ALL] etiqueta).- Devuelve la etiqueta (de salto) menor de entre las
mas altas.
Página 6 de 12
PL/SQL 2. FUNCIONES
Notación octal.
10 '' decimal.
16 '' hexadecimal.
17 caracteres simples.
Página 7 de 12
PL/SQL 2. FUNCIONES
3. PSEUDO COLUMNAS
LEVEL .- Se usan solo dentro del select, cuando se implementa un árbol jerárquico,
devolviendo el nivel actual dentro del árbol.
4. CONTROL DE TRANSACCIONES
Una transacción es una serie de órdenes SQL que se completan o fallan como una
unidad. Las transacciones son un componente estándar de las bases de datos y sirven para
evitar la inconsistencia de los datos. Una transacción comienza con la primera orden SQL
emitida después de terminar la transacción anterior, o con la primera orden SQL después
de conectarse con la base de datos. La transacción termina con la orden COMMIT o
ROLLBACK.
COMMIT [WORK];
Página 8 de 12
PL/SQL 2. FUNCIONES
La palabra clave opcional WORK tiene como único objeto facilitar la
comprensión del propósito de esta orden. Hasta que la transacción se confirme
mediante COMMIT, solo la sesión que esté ejecutando la transacción podrá ver los
cambios hechos por ella
ROLLBACK [WORK];
Donde la palabra clave WORK es opcional y sólo tiene por objeto hacer más
claro el cometido de esa orden. Se suele utilizar una orden ROLLBACK explícita
cuando se detecta un error en el programa que impide continuar con el trabajo. Si
una sesión se desconecta de la base de datos sin terminar la transacción actual con
COMMIT o ROLLBACK, la transacción es automáticamente cancelada por la base de
datos.
NOTA IMPORTANTE
Página 9 de 12
PL/SQL 2. FUNCIONES
Ejemplo: Guardar en una variable que se denomine salario, el salario que cobra un
empleado introducido por teclado y después visualizar el valor de la variable salario.
declare
empleado employee.employee_id%type;
salario employee.salary%type;
begin
empleado:='&empleado';
select salary into salario
from employee
where employee_id=empleado;
dbms_output.put_line('el empleado '||empleado|| ' tiene un salario de '
||salario||' euros');
end;
/
Página 10 de 12
PL/SQL 2. FUNCIONES
5. EJERCICIOS PROPUESTOS
1º.- Realizar un bloque Pl/Sql en el que introducimos una letra por teclado y visualizamos
cuál es su número ASCII.
3º.- Realizar un bloque Pl/Sql que nos permita visualizar el abecedario de forma que cada
letra aparezca en una línea.
4º.- Realizar un bloque Pl/Sql en el que introducimos una palabra por teclado y
visualizamos cada una de sus letras en una línea.
5º.- Realizar un bloque Pl/Sql en el que introducimos una palabra por teclado y
visualizamos si esta es palíndroma. Una palabra es palíndroma si se lee igual de izquierda a
derecha que de derecha a izquierda.
6º.- Realizar un bloque Pl/Sql en el que introducimos tres números por teclado y
visualizamos el mayor de los números introducidos.
Página 11 de 12
PL/SQL 2. FUNCIONES
9º.- Crear una vista denominada salarios_caros, con los mismos campos que la tabla empleados,
pero en castellano, en donde vamos a guardar todos los empleados que tienen salarios superiores a
2500.
10º.- Realizar un bloque Pl/Sql en el que insertemos un empleado a través de la vista cuyo código
de empleado sea el código del ultimo empleado más uno, de la tabla empleados. Con arreglo a las
siguientes premisas:
Si el empleado es del departamento 12 su salario es la media del salario de los empleados
del departamento que pertenecen a la vista.
Si el empleado es del departamento 20 su salario es el mínimo del salario de los empleados
del departamento que pertenecen a la vista.
Si el empleado es del departamento 30 su salario es el máximo del salario de los empleados
del departamento que pertenecen a la vista.
Página 12 de 12