2009/5/29 Fernando França <[email protected]>
> Boa tarde pessoal,
>
> Será que alguém pode me ajudar com a seguinte dúvida:
>
> Fiz uma função que encripta uma cadeia de caracteres passados, assim:
>
> CREATE OR REPLACE FUNCTION encrypt(phrase text) RETURNS SETOF text AS $$
> DECLARE
> phrase ALIAS FOR $1;
> ret text;
> i integer := 1;
> j integer := length(phrase);
>
> BEGIN
> WHILE(i <= j) LOOP
> ret := chr(ascii(substr(phrase, i, 1)) + i);
> RETURN NEXT ret;
> i := i + 1;
> END LOOP;
>
> RETURN;
> END;
> $$ LANGUAGE plpgsql;
>
>
Caro Fernando,
Porque não fazer simplesmente:
CREATE OR REPLACE FUNCTION encrypt(phrase text) RETURNS text AS $$
DECLARE
phrase ALIAS FOR $1;
ret text DEFAULT '';
i integer := 1;
j integer := length(phrase);
BEGIN
WHILE(i <= j) LOOP
ret := ret || chr(ascii(substr(phrase, i, 1)) + i);
i := i + 1;
END LOOP;
RETURN ret;
END;
$$ LANGUAGE plpgsql;
bdteste=# SELECT encrypt('PostgreSQL');
encrypt
------------
Qqvxlxl[ZV
(1 row)
Fazendo dessa forma poderás utilizar:
INSERT INTO usuarios VALUES ('login', encrypt('senha'));
Cordialmente,
--
Fabrízio de Royes Mello
>> Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral