Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   login pl/sql desde java (http://www.forosdelweb.com/f45/login-pl-sql-desde-java-546876/)

Yecco 10/01/2008 01:14

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!

GreenEyed 10/01/2008 01:28

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!


La zona horaria es GMT -6. Ahora son las 09:06.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.