Foros del Web » Programación para mayores de 30 ;) » Java »

login pl/sql desde java

Estas en el tema de login pl/sql desde java en el foro de Java en Foros del Web. Hola. Como puedo validar un login en un procedimiento almacenado? hasta ahora tengo algo asi: Código PHP: CREATE  OR  REPLACE PACKAGE BODY validarLogin IS PROCEDURE validar  (    usuario_in USUARIOS . ...
  #1 (permalink)  
Antiguo 10/01/2008, 01:14
 
Fecha de Ingreso: enero-2008
Mensajes: 15
Antigüedad: 16 años, 3 meses
Puntos: 0
login pl/sql desde java

Hola.

Como puedo validar un login en un procedimiento almacenado? hasta ahora tengo algo asi:

Código PHP:
CREATE OR REPLACE PACKAGE BODY validarLogin IS

PROCEDURE validar 
(
  
usuario_in USUARIOS.USUARIO%type,
  
clave_in USUARIOS.CLAVE%type,
  
validacion OUT NUMBER
IS
clave_check USUARIOS
.CLAVE%type :='VACIO';
BEGIN

 SELECT CLAVE INTO clave_check
 FROM USUARIOS
 WHERE USUARIO IN 
(usuario_in);

 IF (
clave_check=clave_inTHEN
  validacion
:=1;
 ELSE
  
validacion:=0;
 
END IF;

EXCEPTION
  WHEN OTHERS THEN
  RAISE_APPLICATION_ERROR
(-20001,'Datos Incorrectos');

END validar;

END validarLogin;

pero al recuperarlo en un servlet me tira el error feo ese de sql (SQLException: ORA-20001: Datos Incorrectos ORA-06512: en "VALIDARLOGIN", línea 23 ORA-06512: en línea 1 ) cuando en la tabla no existen los valores ingresados.


Como puedo hacer que no salga ese error y tratar de capturarlo en java y hacer algo mas bonito en le servlet?

Saludos!

Última edición por Yecco; 10/01/2008 a las 01:20
  #2 (permalink)  
Antiguo 10/01/2008, 01:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: login pl/sql desde java

El procedimiento esta haciendo lo que le toca, y Java tambien . Puedes capturar la excepcion y mirar a ver si responde con el codigo ORA-20001 y si es así sabes que es un error de login, o, si te dejan, puedes modificar el PLSQL para que en vez de lanzar una excepcion, devuelva un valor, convirtiendo el procedimiento en una funcion.

Si te dejan, es más eficiente usar una función puesto que lanzar una excepcion consume mas recursos que seguir el flujo normal de un programa.

S!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:45.