Форум: "Начинающим";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];
ВнизOPEN CUR_OBJS FOR vSQL USING nOBJ_TYPE, nOBJ_TYPE; Найти похожие ветки
← →
Нуб (2007-03-26 12:34) [0]Здрасте. Ув мастера как понимать выражение
OPEN CUR_OBJS FOR vSQL USING nOBJ_TYPE, nOBJ_TYPE; , где CUR_OBJS это REFCURSOR, а vSQL - это варчар типа vSQL VARCHAR2(4000) := "
SELECT OBJ_ID,OBJ_NAME,OBJ_SNAME,OBJ_TYPE FROM OBJS WHERE (:vOBJ_TYPE IS NULL OR OBJ_TYPE = :vOBJ_TYPE)"; непонятно для чего этот USING нужен , ниже приведен полный текст функции PL/SQL
FUNCTION LIST_OBJS_BY_TYPE(cORDER IN VARCHAR2 := NULL,nOBJ_TYPE IN NUMBER := NULL) RETURN REFCURSOR IS
CUR_OBJS REFCURSOR;
vSQL VARCHAR2(4000) := "
SELECT OBJ_ID,OBJ_NAME,OBJ_SNAME,OBJ_TYPE FROM OBJS WHERE (:vOBJ_TYPE IS NULL OR OBJ_TYPE = :vOBJ_TYPE)";
BEGIN
IF cORDER IS NOT NULL THEN
vSQL := vSQL||" ORDER BY "||cORDER;
END IF;
OPEN CUR_OBJS FOR vSQL USING nOBJ_TYPE, nOBJ_TYPE;
RETURN CUR_OBJS;
END LIST_OBJS_BY_TYPE;
← →
Нуб (2007-03-26 12:37) [1]что такое cursor и для чего он нужен я понял с примера
CREATE PACKAGE emp_data AS
TYPE GenericCurTyp IS REF CURSOR;
TYPE EmpCurTyp IS REF CURSOR RETURN emp%ROWTYPE;
PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp,
choice IN NUMBER);
END emp_data;
CREATE PACKAGE BODY emp_data AS
PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp,
choice IN NUMBER) IS
BEGIN
IF choice = 1 THEN
OPEN emp_cv FOR SELECT * FROM emp WHERE comm IS NOT NULL;
ELSIF choice = 2 THEN
OPEN emp_cv FOR SELECT * FROM emp WHERE sal > 2500;
ELSIF choice = 3 THEN
OPEN emp_cv FOR SELECT * FROM emp WHERE deptno = 20;
END IF;
END open_emp_cv;
END emp_data;
а вот USING нафиг надо , как оно ? , для чего ? и почему ?
← →
Desdechado © (2007-03-26 12:49) [2]Видимо, Оракл?
USING дает возможность указать фактические значения параметров, если таковые есть.
← →
Нуб (2007-03-26 13:11) [3]
> Desdechado ©
да Оракл, ясно , будем дальше инфу читать
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.059 c