Caros colegas,
Estou migrando funções de um banco de dados Oracle para PostgreSQL
versão 9.4 de forma que sejam compatíveis com um aplicativo escrito
principalmente em VB (e algumas outras linguagens/ferramentas). Os
parâmetros de conexão já foram alterados e o aplicativo roda "liso" no
PostgreSQL com pequenos ajustes a serem feitos.
Este aplicativo utiliza diversas funções personalizadas no banco
incluindo algumas para fazer soma de datas. Por exemplo: existe uma
função chamada "f_date_day_add" que soma a quantidade de dias a uma
determinada data.
Apesar de eu criar uma outra função usando a linguagem SQL para
resolver o problema eu gostaria de saber como fazer a soma de dias em
uma variável do tipo DATE em PL/pgSQL, como na função 1 abaixo:
--- 1) Esta não funciona
CREATE OR REPLACE FUNCTION f_date_day_add(
d_date date,
i_days integer)
RETURNS date AS
$BODY$
DECLARE
ld_date DATE;
BEGIN
SET ld_date = d_date + 'interval' 1 DAY;
RETURN ld_date;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
--- 2) A solução foi utilizar a função SQL abaixo:
CREATE OR REPLACE FUNCTION f_date_day_add(
d_date date,
i_days integer)
RETURNS date AS
$BODY$
SELECT d_date + 1 AS l_date
$BODY$
LANGUAGE sql VOLATILE;
Há outras stored procedures que precisarei converter e nelas há
códigos mais complexos que fazem diversas operações com campos tipo
data.
Seria possível implementar a função 1 em PL/pgSQL? Todas as pesquisas
que faço acabam apontando para soluções em linguagem SQL.
TIAGO J. ADAMI
http://www.adamiworks.com
@tiadami
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral