Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос знатокам PL/SQL, как преобращовать курсор из DBMS_SQL в "обычный" / 2 сообщений из 2, страница 1 из 1
26.12.2001, 12:37
    #32019866
carper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос знатокам PL/SQL, как преобращовать курсор из DBMS_SQL в "обычный"
Добрый день.

Можно ли переписать с помощью динамического 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;
...
Рейтинг: 0 / 0
10.01.2002, 15:12
    #32020477
олег
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос знатокам PL/SQL, как преобращовать курсор из DBMS_SQL в "обычный"
Для 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;
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос знатокам PL/SQL, как преобращовать курсор из DBMS_SQL в "обычный" / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]