Lucas Naldo Postado Setembro 25, 2017 Denunciar Share Postado Setembro 25, 2017 Tenho uma query pronta e pretendo chama-lá por linha de comando quando necessário. gostaria de alterar a variável de data pela chamada. por exemplo: psql -f /mnt/Download/testeMeuBanco.sql -o /mnt/Download/resultado_meu_teste.csv gostaria de alterar duas variáveis declaradas nessa linha. pDataInicial e pDataFinal. vi artigos dizendo para usar -v. segue a query exemplo --Teste DO $$ declare pHostname varchar(100) = 'localhost'; pDataInicial timestamp(0) = '2017-07-30'; pDataFinal timestamp = '2017-08-20'; begin DROP TABLE IF EXISTS resultado; create temp table resultado as SELECT a.cod as CODIGO, a.valor as VALOR, a.data as DATA, a.status as STATUS FROM history a WHERE a.data BETWEEN pDataInicial AND pDataFinal GROUP BY a.cod, a.valor, a.data, a.status ORDER BY a.valor; end $$ language 'plpgsql'; select * from resultado; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Lucas Naldo
Tenho uma query pronta e pretendo chama-lá por linha de comando quando necessário. gostaria de alterar a variável de data pela chamada.
por exemplo:
psql -f /mnt/Download/testeMeuBanco.sql -o /mnt/Download/resultado_meu_teste.csv
gostaria de alterar duas variáveis declaradas nessa linha. pDataInicial e pDataFinal. vi artigos dizendo para usar -v.
segue a query exemplo
--Teste
DO $$
declare
pHostname varchar(100) = 'localhost';
pDataInicial timestamp(0) = '2017-07-30';
pDataFinal timestamp = '2017-08-20';
begin
DROP TABLE IF EXISTS resultado;
create temp table resultado as
SELECT a.cod as CODIGO, a.valor as VALOR, a.data as DATA, a.status as STATUS
FROM history a
WHERE a.data BETWEEN pDataInicial AND pDataFinal
GROUP BY a.cod, a.valor, a.data, a.status
ORDER BY a.valor;
end
$$ language 'plpgsql';
select * from resultado;
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.