Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.033 c
6-1161634019
Image
2006-10-24 00:06
2007.04.15
Как идентифицировать в локальной сети устройство?


15-1174256394
Alexander Panov
2007-03-19 01:19
2007.04.15
Вакансия.


2-1175111750
Ников
2007-03-28 23:55
2007.04.15
Как написать м в квадрате


3-1169627984
iviom
2007-01-24 11:39
2007.04.15
Как сделать групповую операцию над ADODataSet?


2-1174633027
Ega23
2007-03-23 09:57
2007.04.15
Наследование фреймов




   Наверх