Procedure - Primeira letra da palavra com letra maiúscula (Initcap)
SQL:
create or alter procedure INITCAP (ENTRADA varchar(4000)) returns (SAIDA varchar(4000)) as
declare variable LI_TAMANHO integer;
declare variable I integer;
begin
I = 1;
LI_TAMANHO = char_length(:ENTRADA);
ENTRADA = lower(ENTRADA);
while (I <= LI_TAMANHO) do
begin
if (I = 1) then
begin
SAIDA = upper(substring(ENTRADA from I for 1)) || substring(ENTRADA from I + 1 for LI_TAMANHO);
end
else
begin
if (substring(ENTRADA from I for 1) = ' ') then
begin
SAIDA = substring(SAIDA from 1 for I) || upper(substring(ENTRADA from I + 1 for 1)) || substring(ENTRADA from I + 2 for LI_TAMANHO);
end
end
I = I + 1;
end
suspend;
end;
Chamada da procedure:
select * from INITCAP('nome sobrenome')
Retorno:
Nome Sobrenome