Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Cómo crear una función en SQL Developer

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 29 de abril de 2020 por Alfonso N.

106 visualizaciones

Descargar la transcripción

Continuamos con el tema dedicado a la creación de módulos, funciones y procedimientos con un ejemplo de una función. 00:00:02
En este caso, lo que he hecho ha sido crear una función que se llama hijos de empleados, 00:00:10
que básicamente lo que hace es que le paso como parámetro un número de hijos y me devuelve cuántos empleados hay que tienen ese número de hijos. 00:00:15
El cuerpo de la función sería este, siempre la misma estructura, creatore, clase, función, número de la función, parámetro de entrada, hijos, y fijaros en el valor de vuelta. 00:00:25
En el valor de vuelta se indica tanto el tipo y la variable con el tipo que lo va a recoger, en la que se va a devolver. 00:00:38
En algunos lenguajes de programación se utiliza el nombre de la función 00:00:51
Con lo cual no haría falta declarar esto 00:00:55
Simplemente el tipo de dato y luego poner un return con el nombre de la función 00:00:58
Ya ves que en PSQL además del nombre de la función y del tipo de dato 00:01:03
Hay que declarar la variable con su tipo que lo va a recoger 00:01:09
Diréis, ¿por qué aparece IntegrityNumber? 00:01:16
Bien, aparece por lo siguiente, porque yo en la base de datos lo he creado como integer, pero luego en PLSQL no existe el tipo integer, sino que es number. 00:01:19
¿Qué es lo que hace? Bueno, esta función lo que hace es que declara un cursor implícito, ya que va a devolver una única fila con el número de empleado, 00:01:33
que es un count 00:01:42
que lo vuelca 00:01:44
en el valor que voy a utilizar de vuelta 00:01:45
en la variable que voy a utilizar 00:01:49
para el valor de vuelta 00:01:50
y que selecciona de la tabla empleado 00:01:52
me cuenta todos los empleados 00:01:54
que tienen el número de hijos igual 00:01:57
a hijos que es el valor que le he pasado 00:01:58
como argumento y después lo devuelve 00:02:00
¿de acuerdo? 00:02:04
en otra hoja 00:02:07
PLSQL 00:02:09
perdón, otra hoja SQL que puedo abrir 00:02:10
indicando aquí, indicando sobre la conexión que se hace 00:02:14
¿Veis? Aquí abrí una y pego el código 00:02:18
pues hago la llamada. ¿Qué es lo que hace la llamada? Bueno, habilita 00:02:21
la salida y 00:02:26
declara dos variables. La primera es hijos, que la va a pedir 00:02:30
y la segunda es cont, que es 00:02:34
donde la va a recoger, fijaros que la declaro 00:02:38
dando como entero 00:02:41
entonces, esto me pediría 00:02:42
¿cuántos números de hijos? 00:02:44
y lo que hace el código 00:02:47
es que, como os decía 00:02:49
al ser una función 00:02:51
un módulo que devuelve un valor 00:02:52
para llamarlo, necesito una variable 00:02:54
que recoja ese valor, en este caso 00:02:57
es la variable cont 00:02:59
entonces se pone una cosa parecida a esta 00:03:00
cont va a ser igual a lo que devuelva 00:03:02
hijo empleado que devuelve hijos 00:03:05
esto llamaría a la función 00:03:07
haría el select 00:03:11
el valor se devuelve en cont 00:03:12
y se almacena en cont 00:03:15
no tiene por qué llamarse igual 00:03:16
pero bueno, la llama de igual 00:03:18
y lo que hace es que 00:03:19
si comprueba que sea cero 00:03:22
para decirme que no hay empleados 00:03:24
con 00:03:26
ese número de hijos 00:03:26
he puesto ese con esos hijos 00:03:31
y si no 00:03:33
pues me dice que hay empleados con hijos, ¿vale? Bien, os he dicho que hasta ahora no hemos dejado almacenados los bloques anónimos de PLSQL, 00:03:37
pero sí se pueden almacenar, no me riñáis, sé que lo tenía que haber dicho antes. ¿Cómo se pueden guardar estos bloques de PLSQL? 00:03:54
Pues se pueden guardar como si fuese una función normal y corriente, como si fuese un archivo normal y corriente. Entonces yo le digo guardar como porque ya lo he guardado y me va a la carpeta root. Yo lo que he hecho ha sido crearme una carpetita empleados, que la puedo crear aquí, ¿vale? 00:04:02
y dentro de ese le pongo un nombre, le he puesto llamada, función, nombre de la función, llamada, procedimiento, 00:04:22
este es el de antes, lo guardo y ya lo tengo ahí disponible. 00:04:31
Vamos a comprobar que funciona, como siempre primero lo compilamos, veis que no da error, compilado, 00:04:38
y ahora lo comprobamos utilizando la llamada. 00:04:46
cuando lo ejecuto 00:04:52
perdón, le tenía que haber dado aquí 00:04:56
bueno, igual 00:04:58
me dice que 00:05:00
con qué conexión lo quiero ejecutar 00:05:01
por defecto me coge 00:05:04
la que tengo abierta, me pide el número de hijos 00:05:06
pues bueno, le voy a poner 2 00:05:08
pues me dice 00:05:10
como resultado que hay 00:05:12
6 empleados con 2 hijos 00:05:14
lo voy a volver a ejecutar 00:05:16
y le voy a poner un valor que sé que no hay 00:05:18
12 hijos 00:05:20
para que me diga que no hay empleados con esos 12 hijos 00:05:21
de acuerdo 00:05:27
de esa manera 00:05:29
lo guardo, si 00:05:33
de esa manera, a ver si me deja 00:05:37
pues tenemos que el procedimiento o función queda almacenado en la conexión 00:05:40
como ya vimos 00:05:47
Aquí abro la función y aquí abro el procedimiento y la llamada pues puedo acceder a ella en cualquier momento abriendo mi carpetita de base de datos y voy a volver por ejemplo a abrir otra vez la llamada al procedimiento. 00:05:48
la ejecuto 00:06:09
número de departamento 00:06:12
pues el 120 00:06:15
aceptar 00:06:17
solo hay un empleado 00:06:19
en el departamento 120 00:06:21
vale 00:06:22
muy bien, entonces un saludo y hasta luego 00:06:25
Autor/es:
Navajas Martínez, Alfonso
Subido por:
Alfonso N.
Licencia:
Reconocimiento
Visualizaciones:
106
Fecha:
29 de abril de 2020 - 12:49
Visibilidad:
Público
Centro:
IES TETUAN DE LAS VICTORIAS
Duración:
06′ 30″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
14.05 MBytes

Del mismo autor…

Ver más del mismo autor

Comentarios

Para publicar comentarios debes entrar con tu nombre de usuario de EducaMadrid.

Comentarios

Este vídeo todavía no tiene comentarios. Sé el primero en comentar.



EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid