Procedure : Retorna nome do mês

Em alguns casos, precisamos que seja mostrado o nome do mês de uma determinada data.

No Firebird tem a seguinte função:

EXTRACT(MONTH  FROM <DATA>)

Essa função retorna o numero inteiro, respectivo ao mês. Exemplo, se for janeiro será 1, se for fevereiro será 2 e assim sucessivamente.

Sendo assim, a Procedure a seguir pega esse numero inteiro e converte-o no nome do mês, não sendo necessário ficar fazendo CASE WHEN dentro do seu SELECT

CREATE OR ALTER PROCEDURE ZZRETORNA_NOME_MES (MES INT)
RETURNS (NOME_MES VARCHAR(20))
AS
BEGIN
	NOME_MES = '';
  
	NOME_MES = CASE :MES 
	WHEN 1 THEN 'JANEIRO' 
	WHEN 2 THEN 'FEVEREIRO' 
	WHEN 3 THEN 'MARÇO'
	WHEN 4 THEN 'ABRIL' 
	WHEN 5 THEN 'MAIO' 
	WHEN 6 THEN 'JUNHO' 
	WHEN 7 THEN 'JULHO'
	WHEN 8 THEN 'AGOSTO' 
	WHEN 9 THEN 'SETEMBRO' 
	WHEN 10 THEN 'OUTUBRO' 
	WHEN 11 THEN 'NOVEMBRO'
	WHEN 12 THEN 'DEZEMBRO' 
	ELSE '' END; 

  SUSPEND;
END

Para chamar a procedure, use a seguinte linha de comando

SELECT * FROM ZZRETORNA_NOME_MES(2);