Middle
როგორ დავაბრუნოთ მნიშვნელობა პროცედურიდან (REF CURSOR) ?
sobes.tech AI
პასუხი AI-სგან
Oracle PL/SQL-ში ხშირად გამოიყენება REF CURSOR-ის გამოყენება სვეტების ნაკრების დაბრუნებისთვის. ეს არის მითითება შედეგზე, რომელიც შეიძლება გახსნას პროცედურის შიგნით და დაბრუნდეს შემდგომ კოდს.
მაგალითი პროცედურის, რომლის OUT პარამეტრია REF CURSOR ტიპის:
CREATE OR REPLACE PROCEDURE get_employees(p_dept_id IN NUMBER, p_refcur OUT SYS_REFCURSOR) AS
BEGIN
OPEN p_refcur FOR
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = p_dept_id;
END;
/
ზარის მაგალითი PL/SQL ბლოკიდან:
DECLARE
rc SYS_REFCURSOR;
emp_id employees.employee_id%TYPE;
fname employees.first_name%TYPE;
lname employees.last_name%TYPE;
BEGIN
get_employees(10, rc);
LOOP
FETCH rc INTO emp_id, fname, lname;
EXIT WHEN rc%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(emp_id || ' ' || fname || ' ' || lname);
END LOOP;
CLOSE rc;
END;
/
ამ გზით, პროცედურა ხსნის REF CURSOR-ს საჭირო სვეტით, ხოლო ზარის კოდი კითხულობს მონაცემებს მისგან.