Procedure : Primeira letra maíuscula
A baixo segue código fonte da procedure que recebe um texto de até 100 caracteres e retorna o mesmo porém com a primeira letra maiúscula e as demais minúsculas.
CREATE PROCEDURE PRIMEIRALETRAMAISCULA (PSTRING VARCHAR(100))
RETURNS (RESULTADO VARCHAR(100))
AS BEGIN
with recursive r as (
select
substring(a.nome from 1 for 1) letra,
substring(a.nome from 2) restante,
iif(substring(a.nome from 1 for 1) = ' ','S','N') ToUpper
from (
select
lower(' '||cast(:PSTRING as varchar(100))) nome
from rdb$database) a
union all
select
iif(r.toUpper = 'S',upper(substring(r.restante from 1 for 1)),substring(r.restante from 1 for 1)),
substring(r.restante from 2),
iif(substring(r.restante from 1 for 1) = ' ','S','N') ToUpper
from r
where r.restante <> '') select trim(list(r.letra, '')) from r INTO RESULTADO;
SUSPEND;
END
Como chamar essa procedure ?
Para chamar essa procedure, use o seguinte código:
SELECT * FROM PRIMEIRALETRAMAISCULA('TEXTO TESTE');
Observe como fica o resultado após execução.