-2
J'essaye de migrer Oracle Procedure/Funcnctions dans Postgres dans lequel je trouve quelques difficultés avec la syntaxe du curseur dans PostgreSQL. extrait Oracle proc est:comment tester si un refcursor est déjà ouvert dans plpgsql
IF v_user_auth THEN
OPEN no_emp_cur;
ELSE
OPEN un_auth_no_emp_cur;
END IF;
ELSE
IF v_direction = 'newer' THEN
IF v_user_auth THEN
OPEN newer_cur;
ELSE
OPEN un_auth_new_cur;
END IF;
ELSE -- older
IF v_user_auth THEN
OPEN older_cur;
ELSE
OPEN un_auth_old_cur;
END IF;
END IF;
END IF;
LOOP
IF no_emp_cur%ISOPEN THEN
FETCH no_emp_cur INTO v_emp_rec;
IF NOT FOUND THEN EXIT; END IF; -- apply on no_emp_cur
ELSIF un_auth_no_emp_cur%ISOPEN THEN
FETCH un_auth_no_emp_cur INTO v_emp_rec;
IF NOT FOUND THEN EXIT; END IF; -- apply on un_auth_no_emp_cur
ELSIF newer_cur%ISOPEN THEN
FETCH newer_cur INTO v_emp_rec;
IF NOT FOUND THEN EXIT; END IF; -- apply on newer_cur
ELSIF older_cur%ISOPEN THEN
FETCH older_cur INTO v_emp_rec;
IF NOT FOUND THEN EXIT; END IF; -- apply on older_cur
ELSIF un_auth_new_cur%ISOPEN THEN
FETCH un_auth_new_cur INTO v_emp_rec;
IF NOT FOUND THEN EXIT; END IF; -- apply on un_auth_new_cur
ELSIF un_auth_old_cur%ISOPEN THEN
FETCH un_auth_old_cur INTO v_emp_rec;
IF NOT FOUND THEN EXIT; END IF; -- apply on un_auth_old_cur
END IF;
Few Processing ...
END LOOP;
IF no_emp_cur%ISOPEN THEN
CLOSE no_emp_cur;
ELSIF un_auth_no_emp_cur%ISOPEN THEN
CLOSE un_auth_no_emp_cur;
ELSIF newer_cur%ISOPEN THEN
CLOSE newer_cur;
ELSIF older_cur%ISOPEN THEN
CLOSE older_cur;
ELSIF un_auth_new_cur%ISOPEN THEN
CLOSE un_auth_new_cur;
ELSIF un_auth_old_cur%ISOPEN THEN
CLOSE un_auth_old_cur;
END IF;
END IF;
S'il vous plaît aider avec la syntaxe de migrer ce dans Postgres.
Merci d'avance!
Avez-vous déjà écrit un code? –
Je viens de fermer tout le curseur à la fin, mais je ne suis pas sûr d'utiliser de cette façon, donc je voulais connaître la syntaxe dans le cas où le curseur est ouvert, alors nous pouvons fermer ce curseur particulier. – Pooja
Veuillez modifier votre question pour être précis au sujet de votre problème et de ce que vous avez essayé. Il semble que la vraie question est "comment puis-je tester si un refcursor est déjà ouvert dans plpgsql"? –