Bom dia, estou tentando charmar uma função:
CREATE OR REPLACE FUNCTION f_2(p_vetoratributos text[], p_vetorvalores numeric[])
RETURNS text AS
$BODY$
DECLARE
carbono TEXT := p_vetorvalores[6];
fosforo TEXT := p_vetorvalores[1];
boro TEXT := p_vetorvalores[7];
areia TEXT := p_vetorvalores[10];
kalcio TEXT := p_vetorvalores[5];
VAR_TESTE TEXT;
BEGIN
IF fosforo>=8 AND kalcio>=9 THEN
VAR_TESTE = 'BAIXO';
END IF;
RETURN VAR_TESTE;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION f_2(text[], numeric[])
OWNER TO postgres;
Minha duvida é como chamo essa função? Tentei dessas duas formas:
SELECT f_2(ARRAY['0','0','0'], ARRAY[0,1,2,3,4,5,6,7,8,9,10,11,12,13])
SELECT f_2('{"0","0","0"}', '{0,1,2,3,4,5,6,7,8,9,10,11,12,13}')
Mas esta dando o seguinte erro:
ERRO: operador não existe: text >= integer
LINE 1: SELECT fosforo>=8 AND kalcio>=9
^
HINT: Nenhum operador corresponde com o nome e o(s) tipo(s) de argumento(s) informados. Você precisa adicionar conversões de tipo explícitas.
QUERY: SELECT fosforo>=8 AND kalcio>=9
CONTEXT: PL/pgSQL function "f_2" line 14 at IF