DO $$
DECLARE
cursor_salarios refcursor;
salario DECIMAL;
total_instrutores INTEGER DEFAULT 0;
instrutores_recebem_menos INTEGER DEFAULT 0;
percentual DECIMAL;
BEGIN
SELECT instrutores_internos(7) INTO cursor_salarios;
LOOP
FETCH cursor_salarios INTO salario;
EXIT WHEN NOT FOUND;
total_instrutores := total_instrutores +1;
IF 600::DECIMAL > salario THEN
instrutores_recebem_menos := instrutores_recebem_menos + 1;
END IF;
END LOOP;
percentual = instrutores_recebem_menos::DECIMAL / total_instrutores::DECIMAL * 100;
RAISE NOTICE 'PERCENTUAL: % %%', percentual;
END;
$$;
Estou tendo o seguinte erro:
ERROR: column "cursor_salario" does not exist LINE 1: SELECT cursor_salario ^ QUERY: SELECT cursor_salario CONTEXT: função PL/pgSQL instrutores_internos(integer) linha 7 em RETURN SQL statement "SELECT instrutores_internos(7)" função PL/pgSQL inline_code_block linha 10 em comando SQL SQL state: 42703
meu cursor:
DROP FUNCTION instrutores_internos;
CREATE FUNCTION instrutores_internos(id_instrutor INTEGER) RETURNS refcursor AS $$
DECLARE
cursor_salarios refcursor;
BEGIN
OPEN cursor_salarios FOR SELECT instrutor.salario FROM instrutor WHERE id <> id_instrutor AND salario > 0;
RETURN cursor_salario;
END;
$$ LANGUAGE plpgsql;