Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Funcion plsql

Estas en el tema de Funcion plsql en el foro de Oracle en Foros del Web. Hola buenas a todoss! Estoy un poco pez en el tema psql me gustria a ver si podeis dejarme un ejemplo similar para crear una ...
  #1 (permalink)  
Antiguo 10/04/2012, 08:51
 
Fecha de Ingreso: abril-2012
Mensajes: 4
Antigüedad: 12 años, 7 meses
Puntos: 0
Funcion plsql

Hola buenas a todoss!

Estoy un poco pez en el tema psql me gustria a ver si podeis dejarme un ejemplo similar para crear una función que se va a utilizar para establecer restricciones a la hora de crear nuevas contraseñas. Las contraseñas deben cumplir las siguientes restricciones.
Deben tener entre 6 y 10 caracteres y solamente pueden tener letras minúsculas, números, $ o #
  #2 (permalink)  
Antiguo 10/04/2012, 11:55
 
Fecha de Ingreso: abril-2012
Mensajes: 4
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Funcion plsql

Me orientais??? U.U

create or replace function BANCOS_VERIFY_PASSWD (password VARCHAR2(10))
return varchar2
is
long NUMBER;
begin
password:='';
long := LENGHT(password);
if long<=5 then
DBMS_OUTPUT.PUT_LINE("La contraseña debe tener mas de 6 caracteres");
else DBMS_OUTPUT.PUT_LINE("contraseña creada");
end if;
return password;
end;
  #3 (permalink)  
Antiguo 12/04/2012, 15:22
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: Funcion plsql

Puedes validar la longitud con la función length, y los caracteres permitidos con las funciones instr y substr, por ejemplo:

Código:
create function verify (pass varchar2)
return boolean is

 chars varchar2(100):='abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890$#';
 result boolean:=true;
 i number(8);

begin

if ( length(pass) < 6 or length(pass) > 10 ) then
 result:=false;
end if;

if (result) then
 for i in 1..length(pass) loop
      if ( instr(chars, substr(pass,i,1), 1, 1) = 0) then
        result := false;
      end if;
 end loop;
end if;

return result;
end;
/
Saludos

Etiquetas: funcion, plsql, sql
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:41.