miércoles, 29 de diciembre de 2010

Funcion que devuelve solo los numeros de una Cadena

CREATE OR REPLACE FUNCTION solo_numeros(xcadena varchar)
RETURNS character varying AS
$BODY$declare
xcadena alias for $1;
record1 record;
xresult varchar;
begin

--
xresult = '';
FOR record1 IN execute 'select orden, (SELECT substring(substring(' || quote_literal(xcadena) || ',orden,1) FROM ' || quote_literal('[0-9]') || ')) as letra from generate_series(1,length(' || quote_literal(xcadena) || '),1) orden where not (SELECT substring(substring(' || quote_literal(xcadena) || ',orden,1) FROM ' || quote_literal('[0-9]') || ')) is null' loop
xresult = xresult || record1.letra;
end loop;

return xresult;

end;$BODY$
LANGUAGE 'plpgsql' VOLATILE;

select solo_numeros('prueba1345r67--8t')

No hay comentarios: