Я пытаюсь выполнить приведенный ниже код, но я сталкиваюсь с ошибкой, поскольку курсор v1_cur не существует, 34000 .Может кто-нибудь, пожалуйста, дайте мне знать, где ошибка?
CREATE OR REPLACE FUNCTION data_del(
OUT p_message_out CHARACTER VARYING,
OUT p_sqlstate_out CHARACTER VARYING
)
RETURNS RECORD AS
$BODY$
DECLARE
v_msg CHARACTER VARYING(160);
v_sqlstate CHARACTER VARYING(6);
v1_cur RECORD;
c1_cur CURSOR FOR SELECT * FROM mydata WHERE event_timestamp<=CURRENT_TIMESTAMP - INTERVAL '15 Days';
BEGIN
OPEN c1_cur;
LOOP
FETCH c1_cur INTO v1_cur;
EXIT WHEN NOT FOUND;
DELETE FROM mydata WHERE CURRENT OF v1_cur;
END LOOP;
CLOSE c1_cur;
v_msg = 'Data deleted successfully.';
v_sqlstate = 1;
p_message_out = v_msg;
p_sqlstate_out = v_sqlstate;
EXCEPTION WHEN OTHERS THEN
p_message_out=SQLERRM;
p_sqlstate_out=SQLSTATE;
END;
$BODY$
LANGUAGE plpgsql VOLATILE SECURITY DEFINER