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;

Está funcionando bem, por exemplo:

SELECT * FROM encrypt('Teste'), me retorna:

 encrypt
---------
 U
 g
 v
 x
 j
(5 rows)

Minha dúvida é: como trabalho com um conjunto (SET OF), não consigo
usar a função como gostaria, que é algo como:

SELECT encrypt('Teste'), para que me retorne algo como:

 encrypt
---------
 Ugvxj
(1 row)

Para que eu possa usar em situações como essa:

INSERT INTO usuarios VALUES ('login', encrypt('senha'));

Estive lendo na documentação sobre tipos, mas mesmo criando um tipo
específico não consegui tal resultado.

Alguém pode me ajudar? Sinceramente não estou enxergando o que está faltando.

Obrigado a todos.

--
Fernando França
linux user #263682

gtalk: furansa
skype: fernando_desconstruindo

http://desconstruindo.eng.br
http://www.cbpf.br/~lsd
http://www.rnp.br/keyserver/pks/lookup?search=0xB5E21164

Por favor considere o meio ambiente antes de imprimir esta mensagem.
S'il vous plaît à l'environnement avant d'imprimer ce message.
Please consider the environment before printing this message.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a