martes, 3 de diciembre de 2013

fun inverso sporting

create or replace 
FUNCTION INVERSO(v IN VARCHAR) RETURN VARCHAR IS 
  aux VARCHAR(4001);
  
  s CHAR(8) := 'SPORTING';
  size_sporting PLS_INTEGER := 0;
  posicion PLS_INTEGER;
    
BEGIN
  posicion := INSTR(UPPER(v), UPPER(s));
  size_sporting := LENGTH(s);
  
  FOR I IN 1 .. LENGTH(v) LOOP
    IF I >= posicion AND I <= posicion + size_sporting - 1 THEN
      aux := aux || UPPER(SUBSTR(v, I, 1));
    ELSE
      aux := aux || SUBSTR(v, I, 1);
    END IF;
  END LOOP;
  
  SELECT reverse(aux)
  INTO aux
  FROM dual;

  RETURN aux;
END INVERSO;



/**Llamar a la funcion**/
SELECT INVERSO('josemanuel') FROM DUAL;

No hay comentarios:

Publicar un comentario