Função PLPGSQL para inicializar texto em maiúsculo

PostgreSQL

11/09/2006

Boa tarde! Estou querendo colaborar com o Fórum com uma função que criei para converter as iniciais de um texto com caracter maiúsculo, já que o INITCAP quando usado com caracteres acentuados pode ser frustrante.

CREATE OR REPLACE FUNCTION iniciaismaiusculas("varchar")
  RETURNS "varchar" AS
$BODY$
DECLARE
   RESULTADO VARCHAR;
BEGIN
   RESULTADO := ´´;
   FOR I IN 1..CHAR_LENGTH($1) LOOP
      IF (I = 1) THEN
         RESULTADO := INITCAP(SUBSTR($1, I, 1));
      ELSIF(I <> 1) THEN
         IF (SUBSTR($1, I, 1) = ´ ´) THEN
            RESULTADO := RESULTADO || ´ ´ || INITCAP(SUBSTR($1, I + 1, 1));
            I := I + 1;
         ELSE      
            RESULTADO := RESULTADO || SUBSTR($1, I, 1);
         END IF;
      END IF;
   END LOOP;
   RETURN RESULTADO;
END;
$BODY$



Um abraço a todos! :wink:


Sousagomide

Sousagomide

Curtidas 0
POSTAR