elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Duda con lenguaje PLSQL en procedimientos/funciones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con lenguaje PLSQL en procedimientos/funciones  (Leído 566 veces)
jose_ank

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Duda con lenguaje PLSQL en procedimientos/funciones
« en: 24 Febrero 2018, 19:37 »

Hola buenas, tengo una duda con respecto a este lenguaje de programación. Para ello os dejo este ejemplo de un ejercicio básico.

Modificar los datos de un departamento, se recoge como parámetros el identificador, el jefe y la localidad. Habrá mensaje de realización correcta. Si no  existe el departamento, se mandará mensaje.

Código:
CREATE OR REPLACE FUNCTION EJER1
(IDENTIFICADOR IN NUMBER, JEFE IN NUMBER,LOCALIDAD IN NUMBER) RETURN VARCHAR2 AS
id_departamento departments.department_id%type;
BEGIN

  Select department_id into id_departamento
    From departments
      Where department_id = identificador;
     
  Update departments
    Set department_id=identificador,manager_id=jefe,location_id=localidad
      Where department_id = identificador;

  RETURN 'Realización correcta';
 
  exception
    When no_data_found then
      Return 'No existe el departamento';
END EJER1;

La solución es correcta, pero dado a que hemos tenído pocas clases de programación hay cosas que no entiendo. Por lo cual mi pregunta es:

¿Qué significa SELECT x INTO y ? Me refiero a que no entiendo por qué tenemos que hacer un select antes de hacer cualquier otra acción, ya bien sea update, delete, insert etc..

Un saludo!






En línea

Carloswaldo
Traductor
Moderador Global
***
Desconectado Desconectado

Mensajes: 4.741


Nos reservamos el derecho de ban.


Ver Perfil WWW
Re: Duda con lenguaje PLSQL en procedimientos/funciones
« Respuesta #1 en: 14 Marzo 2018, 01:49 »

Un SELECT INTO sirve para guardar lo que retorne el SELECT en una variable para su uso posterior, en este caso en "id_departamento".

Me parece que para este ejercicio se hace primero un SELECT INTO para el manejo de la excepción "no_data_found". Si haces el UPDATE directo y resulta que no existe el id del departamento, el UPDATE no tiene por qué fallar, más bien concluye con éxito pero no actualiza ningún registro. Sin embargo un SELECT INTO lanzará un error cuando no haya resultados, así puedes asegurarte de mandar el mensaje correcto.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines