Курсор ссылки Oracle/нормальный курсор на уровне схемы

Мне интересно, можем ли мы объявить cursor или ref cursor на уровне схемы как сохраненные объекты. Я попытался использовать приведенный ниже оператор для ref cursor

CREATE TYPE my_ref_cursor IS REF CURSOR RETURNING employees%ROWTYPE;

Но я получил ошибку. Небольшой рабочий пример подойдет, а если мы не сможем, то краткое изложение причин этого будет большим подспорьем.


person Pawan Rawat    schedule 31.03.2018    source источник
comment
Не могли бы вы объяснить, почему вы пытаетесь использовать TYPE my_ref_cursor IS REF CURSOR RETURN employees%ROWTYPE ? Какова цель, которую вы хотите достичь, поскольку использование слабого рефкурсора в любом случае не рекомендуется в Oracle. Кажется, вы хотите добиться функциональности sys_refcursor, тогда почему бы не использовать его напрямую?   -  person XING    schedule 02.04.2018


Ответы (2)


Я сомневаюсь, что это возможно. Из оператора CREATE TYPE:

Оператор CREATE TYPE создает или заменяет одну из следующих спецификаций:

  • Абстрактный тип данных (ADT) (включая тип объекта SQLJ)

  • Автономный переменный тип массива (varray)

  • Тип автономной вложенной таблицы

  • Неполный тип объекта

person Lukasz Szozda    schedule 31.03.2018
comment
хм ... тогда я думаю, что единственный оставшийся способ сделать это - через пакет, содержащий объявление для всех курсоров ref. - person Pawan Rawat; 31.03.2018
comment
Я дал пример в своем ответе - person SevincQurbanova; 02.04.2018

CREATE OR REPLACE PACKAGE yourSchemaName.yourPackageName AS
TYPE my_ref_cursor IS REF CURSOR RETURN employees%ROWTYPE;
--your stored procedure and function declarations 
end yourPackageName ;

Это рабочий пример в оракуле sql. Это спецификация пакета и объявление в нем типа курсора ref;

person SevincQurbanova    schedule 01.04.2018