Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
26.12.2001, 12:37
|
|||
---|---|---|---|
|
|||
Вопрос знатокам PL/SQL, как преобращовать курсор из DBMS_SQL в "обычный" |
|||
#18+
Добрый день. Можно ли переписать с помощью динамического SQL следующую функцию: TYPE cr_type IS REF CURSOR; function GET_ALL_USER_ROLES(dblink VARCHAR2) return cr_type is cv cr_type; begin -- Вот здесь предполагается использование DBMS_SQL, т.к., будет меняться dblink -- т.е. потребуется что-то типа ... from ROLE_ROLE_PRIVS@'||dblink open cv for select granted_role from ROLE_ROLE_PRIVS UNION select granted_role from USER_ROLE_PRIVS; return cv; -- КАК вернуть курсор при использовании DBMS_SQL? -- Причем предполагается (в зависимости от переданного значения)использовать либо --dynamic SQL либо обычный, поэтому возврат указателя на курсор из DBMS_SQL не подходит -- (ввиду частого вызова функции, очень бы не хотелось всегда использовать DBMS_SQL как более тормозной); end; ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.01.2002, 15:12
|
|||
---|---|---|---|
|
|||
Вопрос знатокам PL/SQL, как преобращовать курсор из DBMS_SQL в "обычный" |
|||
#18+
Для 8-ки: OPEN {cursor_variable | :host_cursor_variable} FOR dynamic_string [USING bind_argument[, bind_argument]...]; пример из руководства DECLARE TYPE EmpCurTyp IS REF CURSOR; -- define weak REF CURSOR type emp_cv EmpCurTyp; -- declare cursor variable my_ename VARCHAR2(15); my_sal NUMBER := 1000; BEGIN OPEN emp_cv FOR -- open cursor variable 'SELECT ename, sal FROM emp WHERE sal > :s' USING my_sal; ... END; ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&mobile=1&tid=1993455]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
33ms |
get tp. blocked users: |
2ms |
others: | 252ms |
total: | 367ms |
0 / 0 |