在我的postgres DB中有以下函数:
CREATE OR REPLACE FUNCTION schema1.ven_totais_nfes(data_inicial date, data_final date, setor_usuario text[])
RETURNS TABLE(status character varying, quantidade bigint, valor numeric)
LANGUAGE plpgsql
SET search_path TO 'schema1', '$user', 'public'
AS $function$
declare
item record;
begin
[...]
执行如下脚本:
select * from ven_totais_nfes('2022-12-01', '2022-12-31', array['aef4786e-7d99-4fdc-a20a-4da11c168eb2'])
返回我想要的结果,但是从springboot后端调用函数,它在函数调用时中断。
public List<NFeTotaisViewDto> findTotais(Date dataInicial, Date dataFinal, List<UUID>setorUsuario) {
Query query = entityManager.createNativeQuery("select * from ven_totais_nfes(:dataInicial, :dataFinal, :setorUsuario)");
query.setParameter("dataInicial", dataInicial);
query.setParameter("dataFinal", dataFinal);
query.setParameter("setorUsuario", setorUsuario);
错误:函数ven_totais_nfes(未知,未知,uuid)不存在Dica:没有与给定名称和参数类型匹配的函数。您可能需要添加显式类型转换。
1条答案
按热度按时间6tdlim6h1#
问题是传递给函数的数组类型,我解决了使用for迭代抛出数组中的所有itens,并作为字符串传递给函数中的text[]类型。